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