1478e5d1dSStefan Marr--TEST--
204145dc2SVeres LajosTest trait_exists() function : usage variations  - unexpected types for argument 2
3478e5d1dSStefan Marr--FILE--
4478e5d1dSStefan Marr<?php
5478e5d1dSStefan Marr/* Prototype  : proto bool trait_exists(string traitname [, bool autoload])
6782352c5SPeter Kokot * Description: Checks if the trait exists
7478e5d1dSStefan Marr * Source code: Zend/zend_builtin_functions.c
8782352c5SPeter Kokot * Alias to functions:
9478e5d1dSStefan Marr */
10478e5d1dSStefan Marr
11162aa1a5SNikita Popovspl_autoload_register(function ($traitName) {
12162aa1a5SNikita Popov	echo "In autoload($traitName)\n";
13162aa1a5SNikita Popov});
14478e5d1dSStefan Marr
15478e5d1dSStefan Marrfunction test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) {
16478e5d1dSStefan Marr	echo "Error: $err_no - $err_msg, $filename($linenum)\n";
17478e5d1dSStefan Marr}
18478e5d1dSStefan Marrset_error_handler('test_error_handler');
19478e5d1dSStefan Marr
20478e5d1dSStefan Marrecho "*** Testing trait_exists() : usage variations ***\n";
21478e5d1dSStefan Marr
22478e5d1dSStefan Marr// Initialise function arguments not being substituted (if any)
23478e5d1dSStefan Marr$traitname = 'string_val';
24478e5d1dSStefan Marr
25478e5d1dSStefan Marr//get an unset variable
26478e5d1dSStefan Marr$unset_var = 10;
27478e5d1dSStefan Marrunset ($unset_var);
28478e5d1dSStefan Marr
29478e5d1dSStefan Marr//array of values to iterate over
30478e5d1dSStefan Marr$values = array(
31478e5d1dSStefan Marr
32478e5d1dSStefan Marr      // int data
33478e5d1dSStefan Marr      0,
34478e5d1dSStefan Marr      1,
35478e5d1dSStefan Marr      12345,
36478e5d1dSStefan Marr      -2345,
37478e5d1dSStefan Marr
38478e5d1dSStefan Marr      // float data
39478e5d1dSStefan Marr      10.5,
40478e5d1dSStefan Marr      -10.5,
41478e5d1dSStefan Marr      10.1234567e10,
42478e5d1dSStefan Marr      10.7654321E-10,
43478e5d1dSStefan Marr      .5,
44478e5d1dSStefan Marr
45478e5d1dSStefan Marr      // array data
46478e5d1dSStefan Marr      array(),
47478e5d1dSStefan Marr      array(0),
48478e5d1dSStefan Marr      array(1),
49478e5d1dSStefan Marr      array(1, 2),
50478e5d1dSStefan Marr      array('color' => 'red', 'item' => 'pen'),
51478e5d1dSStefan Marr
52478e5d1dSStefan Marr      // null data
53478e5d1dSStefan Marr      NULL,
54478e5d1dSStefan Marr      null,
55478e5d1dSStefan Marr
56478e5d1dSStefan Marr      // boolean data
57478e5d1dSStefan Marr      true,
58478e5d1dSStefan Marr      false,
59478e5d1dSStefan Marr      TRUE,
60478e5d1dSStefan Marr      FALSE,
61478e5d1dSStefan Marr
62478e5d1dSStefan Marr      // empty data
63478e5d1dSStefan Marr      "",
64478e5d1dSStefan Marr      '',
65478e5d1dSStefan Marr
66478e5d1dSStefan Marr      // string data
67478e5d1dSStefan Marr      "string",
68478e5d1dSStefan Marr      'string',
69478e5d1dSStefan Marr
70478e5d1dSStefan Marr      // object data
71478e5d1dSStefan Marr      new stdclass(),
72478e5d1dSStefan Marr
73478e5d1dSStefan Marr      // undefined data
74478e5d1dSStefan Marr      $undefined_var,
75478e5d1dSStefan Marr
76478e5d1dSStefan Marr      // unset data
77478e5d1dSStefan Marr      $unset_var,
78478e5d1dSStefan Marr);
79478e5d1dSStefan Marr
80478e5d1dSStefan Marr// loop through each element of the array for autoload
81478e5d1dSStefan Marr
82478e5d1dSStefan Marrforeach($values as $value) {
83478e5d1dSStefan Marr      echo "\nArg value $value \n";
84478e5d1dSStefan Marr      var_dump( trait_exists($traitname, $value) );
85478e5d1dSStefan Marr};
86478e5d1dSStefan Marr
87478e5d1dSStefan Marrecho "Done";
88478e5d1dSStefan Marr?>
89478e5d1dSStefan Marr--EXPECTF--
90478e5d1dSStefan Marr*** Testing trait_exists() : usage variations ***
91478e5d1dSStefan MarrError: 8 - Undefined variable: undefined_var, %s(71)
92478e5d1dSStefan MarrError: 8 - Undefined variable: unset_var, %s(74)
93478e5d1dSStefan Marr
94478e5d1dSStefan MarrArg value 0 
95478e5d1dSStefan Marrbool(false)
96478e5d1dSStefan Marr
97478e5d1dSStefan MarrArg value 1 
98162aa1a5SNikita PopovIn autoload(string_val)
99478e5d1dSStefan Marrbool(false)
100478e5d1dSStefan Marr
101478e5d1dSStefan MarrArg value 12345 
102162aa1a5SNikita PopovIn autoload(string_val)
103478e5d1dSStefan Marrbool(false)
104478e5d1dSStefan Marr
105478e5d1dSStefan MarrArg value -2345 
106162aa1a5SNikita PopovIn autoload(string_val)
107478e5d1dSStefan Marrbool(false)
108478e5d1dSStefan Marr
109478e5d1dSStefan MarrArg value 10.5 
110162aa1a5SNikita PopovIn autoload(string_val)
111478e5d1dSStefan Marrbool(false)
112478e5d1dSStefan Marr
113478e5d1dSStefan MarrArg value -10.5 
114162aa1a5SNikita PopovIn autoload(string_val)
115478e5d1dSStefan Marrbool(false)
116478e5d1dSStefan Marr
117478e5d1dSStefan MarrArg value 101234567000 
118162aa1a5SNikita PopovIn autoload(string_val)
119478e5d1dSStefan Marrbool(false)
120478e5d1dSStefan Marr
121478e5d1dSStefan MarrArg value 1.07654321E-9 
122162aa1a5SNikita PopovIn autoload(string_val)
123478e5d1dSStefan Marrbool(false)
124478e5d1dSStefan Marr
125478e5d1dSStefan MarrArg value 0.5 
126162aa1a5SNikita PopovIn autoload(string_val)
127478e5d1dSStefan Marrbool(false)
128d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_002.php(%d)
129478e5d1dSStefan Marr
130478e5d1dSStefan MarrArg value Array 
131fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, array given, %s(81)
132478e5d1dSStefan MarrNULL
133d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_002.php(%d)
134478e5d1dSStefan Marr
135478e5d1dSStefan MarrArg value Array 
136fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, array given, %s(81)
137478e5d1dSStefan MarrNULL
138d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_002.php(%d)
139478e5d1dSStefan Marr
140478e5d1dSStefan MarrArg value Array 
141fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, array given, %s(81)
142478e5d1dSStefan MarrNULL
143d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_002.php(%d)
144478e5d1dSStefan Marr
145478e5d1dSStefan MarrArg value Array 
146fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, array given, %s(81)
147478e5d1dSStefan MarrNULL
148d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_002.php(%d)
149478e5d1dSStefan Marr
150478e5d1dSStefan MarrArg value Array 
151fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, array given, %s(81)
152478e5d1dSStefan MarrNULL
153478e5d1dSStefan Marr
154478e5d1dSStefan MarrArg value  
155478e5d1dSStefan Marrbool(false)
156478e5d1dSStefan Marr
157478e5d1dSStefan MarrArg value  
158478e5d1dSStefan Marrbool(false)
159478e5d1dSStefan Marr
160478e5d1dSStefan MarrArg value 1 
161162aa1a5SNikita PopovIn autoload(string_val)
162478e5d1dSStefan Marrbool(false)
163478e5d1dSStefan Marr
164478e5d1dSStefan MarrArg value  
165478e5d1dSStefan Marrbool(false)
166478e5d1dSStefan Marr
167478e5d1dSStefan MarrArg value 1 
168162aa1a5SNikita PopovIn autoload(string_val)
169478e5d1dSStefan Marrbool(false)
170478e5d1dSStefan Marr
171478e5d1dSStefan MarrArg value  
172478e5d1dSStefan Marrbool(false)
173478e5d1dSStefan Marr
174478e5d1dSStefan MarrArg value  
175478e5d1dSStefan Marrbool(false)
176478e5d1dSStefan Marr
177478e5d1dSStefan MarrArg value  
178478e5d1dSStefan Marrbool(false)
179478e5d1dSStefan Marr
180478e5d1dSStefan MarrArg value string 
181162aa1a5SNikita PopovIn autoload(string_val)
182478e5d1dSStefan Marrbool(false)
183478e5d1dSStefan Marr
184478e5d1dSStefan MarrArg value string 
185162aa1a5SNikita PopovIn autoload(string_val)
186478e5d1dSStefan Marrbool(false)
187478e5d1dSStefan MarrError: 4096 - Object of class stdClass could not be converted to string, %s(80)
188478e5d1dSStefan Marr
189478e5d1dSStefan MarrArg value  
190fef879a2SGabriel CarusoError: 2 - trait_exists() expects parameter 2 to be bool, object given, %s(81)
191478e5d1dSStefan MarrNULL
192478e5d1dSStefan Marr
193478e5d1dSStefan MarrArg value  
194478e5d1dSStefan Marrbool(false)
195478e5d1dSStefan Marr
196478e5d1dSStefan MarrArg value  
197478e5d1dSStefan Marrbool(false)
198162aa1a5SNikita PopovDone
199