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
11function __autoload($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)
117
118Arg value Array
119bool(false)
120
121Arg value Array
122bool(false)
123
124Arg value Array
125bool(false)
126
127Arg value Array
128bool(false)
129
130Arg value Array
131bool(false)
132
133Arg value
134bool(false)
135
136Arg value
137bool(false)
138
139Arg value 1
140bool(false)
141
142Arg value
143bool(false)
144
145Arg value 1
146bool(false)
147
148Arg value
149bool(false)
150
151Arg value
152bool(false)
153
154Arg value
155bool(false)
156
157Arg value string
158In __autoload(string)
159bool(false)
160
161Arg value String
162In __autoload(String)
163bool(false)
164
165Arg value
166bool(false)
167
168Arg value
169bool(false)
170Done