1--TEST-- 2Test Z_PARAM_OBJ_OR_STR() and Z_PARAM_OBJ_OR_STR_OR_NULL 3--SKIPIF-- 4<?php 5if (!extension_loaded('zend-test')) die('skip zend-test extension not loaded'); 6?> 7--FILE-- 8<?php 9 10class Foo {} 11 12var_dump(zend_string_or_object("string")); 13var_dump(zend_string_or_object(1)); 14var_dump(zend_string_or_object(null)); 15var_dump(zend_string_or_object(new stdClass())); 16var_dump(zend_string_or_object(new Foo())); 17 18try { 19 zend_string_or_object([]); 20} catch (TypeError $exception) { 21 echo $exception->getMessage() . "\n"; 22} 23 24var_dump(zend_string_or_object_or_null("string")); 25var_dump(zend_string_or_object_or_null(1)); 26var_dump(zend_string_or_object_or_null(null)); 27var_dump(zend_string_or_object_or_null(new stdClass())); 28var_dump(zend_string_or_object_or_null(new Foo())); 29 30try { 31 zend_string_or_object_or_null([]); 32} catch (TypeError $exception) { 33 echo $exception->getMessage() . "\n"; 34} 35 36?> 37--EXPECT-- 38string(6) "string" 39string(1) "1" 40string(0) "" 41object(stdClass)#1 (0) { 42} 43object(Foo)#1 (0) { 44} 45zend_string_or_object(): Argument #1 ($param) must be of type object|string, array given 46string(6) "string" 47string(1) "1" 48NULL 49object(stdClass)#2 (0) { 50} 51object(Foo)#2 (0) { 52} 53zend_string_or_object_or_null(): Argument #1 ($param) must be of type object|string|null, array given 54