1--TEST--
2Test function_exists() function : usage variations - test values for $str argument
3--FILE--
4<?php
5
6/*
7 * proto bool function_exists(string function_name)
8 * Function is implemented in Zend/zend_builtin_functions.c
9*/
10
11echo "*** Testing function_exists() function: with unexpected inputs for 'str' argument ***\n";
12
13//get an unset variable
14$unset_var = 'string_val';
15unset($unset_var);
16
17//defining a class
18class sample  {
19  public function __toString() {
20    return "sample object";
21  }
22}
23
24//getting the resource
25$file_handle = fopen(__FILE__, "r");
26
27// array with different values for $str
28$inputs =  array (
29
30  // integer values
31  0,
32  1,
33  255,
34  256,
35  PHP_INT_MAX,
36  -PHP_INT_MAX,
37
38  // float values
39  10.5,
40  -20.5,
41  10.1234567e10,
42
43  // array values
44  array(),
45  array(0),
46  array(1, 2),
47
48  // boolean values
49  true,
50  false,
51  TRUE,
52  FALSE,
53
54  // null values
55  NULL,
56  null,
57
58  // objects
59  new sample(),
60
61  // resource
62  $file_handle,
63
64  // undefined variable
65  @$undefined_var,
66
67  // unset variable
68  @$unset_var
69);
70
71// loop through with each element of the $inputs array to test function_exists() function
72$count = 1;
73foreach($inputs as $input) {
74  echo "-- Iteration $count --\n";
75  var_dump( function_exists($input) );
76  $count ++;
77}
78
79fclose($file_handle);  //closing the file handle
80
81?>
82===Done===
83--EXPECTF--
84*** Testing function_exists() function: with unexpected inputs for 'str' argument ***
85-- Iteration 1 --
86bool(false)
87-- Iteration 2 --
88bool(false)
89-- Iteration 3 --
90bool(false)
91-- Iteration 4 --
92bool(false)
93-- Iteration 5 --
94bool(false)
95-- Iteration 6 --
96bool(false)
97-- Iteration 7 --
98bool(false)
99-- Iteration 8 --
100bool(false)
101-- Iteration 9 --
102bool(false)
103-- Iteration 10 --
104
105Warning: function_exists() expects parameter 1 to be string, array given in %s on line %d
106NULL
107-- Iteration 11 --
108
109Warning: function_exists() expects parameter 1 to be string, array given in %s on line %d
110NULL
111-- Iteration 12 --
112
113Warning: function_exists() expects parameter 1 to be string, array given in %s on line %d
114NULL
115-- Iteration 13 --
116bool(false)
117-- Iteration 14 --
118bool(false)
119-- Iteration 15 --
120bool(false)
121-- Iteration 16 --
122bool(false)
123-- Iteration 17 --
124bool(false)
125-- Iteration 18 --
126bool(false)
127-- Iteration 19 --
128bool(false)
129-- Iteration 20 --
130
131Warning: function_exists() expects parameter 1 to be string, resource given in %s on line %d
132NULL
133-- Iteration 21 --
134bool(false)
135-- Iteration 22 --
136bool(false)
137===Done===
138