1478e5d1dSStefan Marr--TEST--
204145dc2SVeres LajosTest trait_exists() function : usage variations - unexpected types for argument 1
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$autoload = true;
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      // object data
67478e5d1dSStefan Marr      new stdclass(),
68478e5d1dSStefan Marr
69478e5d1dSStefan Marr      // undefined data
70478e5d1dSStefan Marr      $undefined_var,
71478e5d1dSStefan Marr
72478e5d1dSStefan Marr      // unset data
73478e5d1dSStefan Marr      $unset_var,
74478e5d1dSStefan Marr);
75478e5d1dSStefan Marr
76478e5d1dSStefan Marr// loop through each element of the array for traitname
77478e5d1dSStefan Marr
78478e5d1dSStefan Marrforeach($values as $value) {
79478e5d1dSStefan Marr      echo "\nArg value $value \n";
80478e5d1dSStefan Marr      var_dump( trait_exists($value, $autoload) );
81478e5d1dSStefan Marr};
82478e5d1dSStefan Marr
83478e5d1dSStefan Marrecho "Done";
84478e5d1dSStefan Marr?>
85478e5d1dSStefan Marr--EXPECTF--
86478e5d1dSStefan Marr*** Testing trait_exists() : usage variations ***
87478e5d1dSStefan MarrError: 8 - Undefined variable: undefined_var, %s(67)
88478e5d1dSStefan MarrError: 8 - Undefined variable: unset_var, %s(70)
89478e5d1dSStefan Marr
90478e5d1dSStefan MarrArg value 0 
91162aa1a5SNikita PopovIn autoload(0)
92478e5d1dSStefan Marrbool(false)
93478e5d1dSStefan Marr
94478e5d1dSStefan MarrArg value 1 
95162aa1a5SNikita PopovIn autoload(1)
96478e5d1dSStefan Marrbool(false)
97478e5d1dSStefan Marr
98478e5d1dSStefan MarrArg value 12345 
99162aa1a5SNikita PopovIn autoload(12345)
100478e5d1dSStefan Marrbool(false)
101478e5d1dSStefan Marr
102478e5d1dSStefan MarrArg value -2345 
103478e5d1dSStefan Marrbool(false)
104478e5d1dSStefan Marr
105478e5d1dSStefan MarrArg value 10.5 
106478e5d1dSStefan Marrbool(false)
107478e5d1dSStefan Marr
108478e5d1dSStefan MarrArg value -10.5 
109478e5d1dSStefan Marrbool(false)
110478e5d1dSStefan Marr
111478e5d1dSStefan MarrArg value 101234567000 
112162aa1a5SNikita PopovIn autoload(101234567000)
113478e5d1dSStefan Marrbool(false)
114478e5d1dSStefan Marr
115478e5d1dSStefan MarrArg value 1.07654321E-9 
116478e5d1dSStefan Marrbool(false)
117478e5d1dSStefan Marr
118478e5d1dSStefan MarrArg value 0.5 
119478e5d1dSStefan Marrbool(false)
120d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_001.php(%d)
121478e5d1dSStefan Marr
122478e5d1dSStefan MarrArg value Array 
123478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, array given, %s(77)
124478e5d1dSStefan MarrNULL
125d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_001.php(%d)
126478e5d1dSStefan Marr
127478e5d1dSStefan MarrArg value Array 
128478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, array given, %s(77)
129478e5d1dSStefan MarrNULL
130d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_001.php(%d)
131478e5d1dSStefan Marr
132478e5d1dSStefan MarrArg value Array 
133478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, array given, %s(77)
134478e5d1dSStefan MarrNULL
135d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_001.php(%d)
136478e5d1dSStefan Marr
137478e5d1dSStefan MarrArg value Array 
138478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, array given, %s(77)
139478e5d1dSStefan MarrNULL
140d81ea16eSStanislav MalyshevError: 8 - Array to string conversion, %strait_exists_variation_001.php(%d)
141478e5d1dSStefan Marr
142478e5d1dSStefan MarrArg value Array 
143478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, array given, %s(77)
144478e5d1dSStefan MarrNULL
145478e5d1dSStefan Marr
146478e5d1dSStefan MarrArg value  
147478e5d1dSStefan Marrbool(false)
148478e5d1dSStefan Marr
149478e5d1dSStefan MarrArg value  
150478e5d1dSStefan Marrbool(false)
151478e5d1dSStefan Marr
152478e5d1dSStefan MarrArg value 1 
153162aa1a5SNikita PopovIn autoload(1)
154478e5d1dSStefan Marrbool(false)
155478e5d1dSStefan Marr
156478e5d1dSStefan MarrArg value  
157478e5d1dSStefan Marrbool(false)
158478e5d1dSStefan Marr
159478e5d1dSStefan MarrArg value 1 
160162aa1a5SNikita PopovIn autoload(1)
161478e5d1dSStefan Marrbool(false)
162478e5d1dSStefan Marr
163478e5d1dSStefan MarrArg value  
164478e5d1dSStefan Marrbool(false)
165478e5d1dSStefan Marr
166478e5d1dSStefan MarrArg value  
167478e5d1dSStefan Marrbool(false)
168478e5d1dSStefan Marr
169478e5d1dSStefan MarrArg value  
170478e5d1dSStefan Marrbool(false)
171478e5d1dSStefan MarrError: 4096 - Object of class stdClass could not be converted to string, %s(76)
172478e5d1dSStefan Marr
173478e5d1dSStefan MarrArg value  
174478e5d1dSStefan MarrError: 2 - trait_exists() expects parameter 1 to be string, object given, %s(77)
175478e5d1dSStefan MarrNULL
176478e5d1dSStefan Marr
177478e5d1dSStefan MarrArg value  
178478e5d1dSStefan Marrbool(false)
179478e5d1dSStefan Marr
180478e5d1dSStefan MarrArg value  
181478e5d1dSStefan Marrbool(false)
182162aa1a5SNikita PopovDone