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