1--TEST-- 2Test method_exists() function : usage variations - unexpected type for arg 1 3--FILE-- 4<?php 5/* Prototype : proto bool method_exists(object object, string method) 6 * Description: Checks if the class method exists 7 * Source code: Zend/zend_builtin_functions.c 8 * Alias to functions: 9 */ 10 11spl_autoload_register(function ($className) { 12 echo "In autoload($className)\n"; 13}); 14 15function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 16 echo "Error: $err_no - $err_msg, $filename($linenum)\n"; 17} 18set_error_handler('test_error_handler'); 19 20echo "*** Testing method_exists() : usage variations ***\n"; 21 22// Initialise function arguments not being substituted (if any) 23$method = 'string_val'; 24 25//get an unset variable 26$unset_var = 10; 27unset ($unset_var); 28 29//array of values to iterate over 30$values = array( 31 32 // int data 33 0, 34 1, 35 12345, 36 -2345, 37 38 // float data 39 10.5, 40 -10.5, 41 10.1234567e10, 42 10.7654321E-10, 43 .5, 44 45 // array data 46 array(), 47 array(0), 48 array(1), 49 array(1, 2), 50 array('color' => 'red', 'item' => 'pen'), 51 52 // null data 53 NULL, 54 null, 55 56 // boolean data 57 true, 58 false, 59 TRUE, 60 FALSE, 61 62 // empty data 63 "", 64 '', 65 66 // string data 67 "string", 68 'String', 69 70 // undefined data 71 $undefined_var, 72 73 // unset data 74 $unset_var, 75); 76 77// loop through each element of the array for object 78 79foreach($values as $value) { 80 echo "\nArg value $value \n"; 81 var_dump( method_exists($value, $method) ); 82}; 83 84echo "Done"; 85?> 86--EXPECTF-- 87*** Testing method_exists() : usage variations *** 88Error: 8 - Undefined variable: undefined_var, %s(68) 89Error: 8 - Undefined variable: unset_var, %s(71) 90 91Arg value 0 92bool(false) 93 94Arg value 1 95bool(false) 96 97Arg value 12345 98bool(false) 99 100Arg value -2345 101bool(false) 102 103Arg value 10.5 104bool(false) 105 106Arg value -10.5 107bool(false) 108 109Arg value 101234567000 110bool(false) 111 112Arg value 1.07654321E-9 113bool(false) 114 115Arg value 0.5 116bool(false) 117Error: 8 - Array to string conversion, %smethod_exists_variation_001.php(%d) 118 119Arg value Array 120bool(false) 121Error: 8 - Array to string conversion, %smethod_exists_variation_001.php(%d) 122 123Arg value Array 124bool(false) 125Error: 8 - Array to string conversion, %smethod_exists_variation_001.php(%d) 126 127Arg value Array 128bool(false) 129Error: 8 - Array to string conversion, %smethod_exists_variation_001.php(%d) 130 131Arg value Array 132bool(false) 133Error: 8 - Array to string conversion, %smethod_exists_variation_001.php(%d) 134 135Arg value Array 136bool(false) 137 138Arg value 139bool(false) 140 141Arg value 142bool(false) 143 144Arg value 1 145bool(false) 146 147Arg value 148bool(false) 149 150Arg value 1 151bool(false) 152 153Arg value 154bool(false) 155 156Arg value 157bool(false) 158 159Arg value 160bool(false) 161 162Arg value string 163In autoload(string) 164bool(false) 165 166Arg value String 167In autoload(String) 168bool(false) 169 170Arg value 171bool(false) 172 173Arg value 174bool(false) 175Done 176