1--TEST--
2Test is_callable() function : usage variations - on invalid function names
3--INI--
4precision=14
5error_reporting = E_ALL & ~E_NOTICE | E_STRICT
6--FILE--
7<?php
8/* Prototype: bool is_callable ( mixed $var [, bool $syntax_only [, string &$callable_name]] );
9   Description: Verify that the contents of a variable can be called as a function
10                In case of objects, $var = array($SomeObject, 'MethodName')
11*/
12
13/* Prototype: void check_iscallable( $functions );
14   Description: use iscallable() on given string to check for valid function name
15                returns true if valid function name, false otherwise
16*/
17function check_iscallable( $functions ) {
18  $counter = 1;
19  foreach($functions as $func) {
20    echo "-- Iteration  $counter --\n";
21    var_dump( is_callable($func) );  //given only $var argument
22    var_dump( is_callable($func, TRUE) );  //given $var and $syntax argument
23    var_dump( is_callable($func, TRUE, $callable_name) );
24    echo $callable_name, "\n";
25    var_dump( is_callable($func, FALSE) );  //given $var and $syntax argument
26    var_dump( is_callable($func, FALSE, $callable_name) );
27    echo $callable_name, "\n";
28    $counter++;
29  }
30}
31
32echo "\n*** Testing is_callable() on invalid function names ***\n";
33/* check on unset variables */
34$unset_var = 10;
35unset ($unset_var);
36
37/* opening file resource type */
38$file_handle = fopen (__FILE__, "r");
39
40$variants = array (
41  NULL,  // NULL as argument
42  0,  // zero as argument
43  1234567890,  // positive value
44  -100123456782,  // negative value
45  -2.000000,  // negative float value
46  .567,  // positive float value
47  FALSE,  // boolean value
48  array(1, 2, 3),  // array
49  @$unset_var,
50  @$undef_var,  //undefined variable
51  $file_handle
52);
53
54/* use check_iscallable() to check whether given variable is valid function name
55 *  expected: false
56 */
57check_iscallable($variants);
58
59/* closing resources used */
60fclose($file_handle);
61
62?>
63===DONE===
64--EXPECTF--
65*** Testing is_callable() on invalid function names ***
66-- Iteration  1 --
67bool(false)
68bool(false)
69bool(false)
70
71bool(false)
72bool(false)
73
74-- Iteration  2 --
75bool(false)
76bool(false)
77bool(false)
780
79bool(false)
80bool(false)
810
82-- Iteration  3 --
83bool(false)
84bool(false)
85bool(false)
861234567890
87bool(false)
88bool(false)
891234567890
90-- Iteration  4 --
91bool(false)
92bool(false)
93bool(false)
94-100123456782
95bool(false)
96bool(false)
97-100123456782
98-- Iteration  5 --
99bool(false)
100bool(false)
101bool(false)
102-2
103bool(false)
104bool(false)
105-2
106-- Iteration  6 --
107bool(false)
108bool(false)
109bool(false)
1100.567
111bool(false)
112bool(false)
1130.567
114-- Iteration  7 --
115bool(false)
116bool(false)
117bool(false)
118
119bool(false)
120bool(false)
121
122-- Iteration  8 --
123bool(false)
124bool(false)
125bool(false)
126Array
127bool(false)
128bool(false)
129Array
130-- Iteration  9 --
131bool(false)
132bool(false)
133bool(false)
134
135bool(false)
136bool(false)
137
138-- Iteration  10 --
139bool(false)
140bool(false)
141bool(false)
142
143bool(false)
144bool(false)
145
146-- Iteration  11 --
147bool(false)
148bool(false)
149bool(false)
150Resource id #%d
151bool(false)
152bool(false)
153Resource id #%d
154===DONE===
155