3 changed files with 237 additions and 2 deletions
@ -0,0 +1,160 @@ |
|||
--TEST-- |
|||
ReflectionClass::newInstance[Args] |
|||
--FILE-- |
|||
<?php |
|||
|
|||
function test($class) |
|||
{ |
|||
echo "====>$class\n"; |
|||
try |
|||
{ |
|||
$ref = new ReflectionClass($class); |
|||
} |
|||
catch (ReflectionException $e) |
|||
{ |
|||
var_dump($e->getMessage()); |
|||
return; // only here |
|||
} |
|||
|
|||
echo "====>newInstance()\n"; |
|||
try |
|||
{ |
|||
var_dump($ref->newInstance()); |
|||
} |
|||
catch (ReflectionException $e) |
|||
{ |
|||
var_dump($e->getMessage()); |
|||
} |
|||
|
|||
echo "====>newInstance(25)\n"; |
|||
try |
|||
{ |
|||
var_dump($ref->newInstance(25)); |
|||
} |
|||
catch (ReflectionException $e) |
|||
{ |
|||
var_dump($e->getMessage()); |
|||
} |
|||
|
|||
echo "====>newInstance(25, 42)\n"; |
|||
try |
|||
{ |
|||
var_dump($ref->newInstance(25, 42)); |
|||
} |
|||
catch (ReflectionException $e) |
|||
{ |
|||
var_dump($e->getMessage()); |
|||
} |
|||
|
|||
echo "\n"; |
|||
} |
|||
|
|||
function __autoload($class) |
|||
{ |
|||
echo __FUNCTION__ . "($class)\n"; |
|||
} |
|||
|
|||
test('Class_does_not_exist'); |
|||
|
|||
Class NoCtor |
|||
{ |
|||
} |
|||
|
|||
test('NoCtor'); |
|||
|
|||
Class WithCtor |
|||
{ |
|||
function __construct() |
|||
{ |
|||
echo __METHOD__ . "()\n"; |
|||
var_dump(func_get_args()); |
|||
} |
|||
} |
|||
|
|||
test('WithCtor'); |
|||
|
|||
Class WithCtorWithArgs |
|||
{ |
|||
function __construct($arg) |
|||
{ |
|||
echo __METHOD__ . "($arg)\n"; |
|||
var_dump(func_get_args()); |
|||
} |
|||
} |
|||
|
|||
test('WithCtorWithArgs'); |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
|
|||
====>Class_does_not_exist |
|||
__autoload(Class_does_not_exist) |
|||
string(41) "Class Class_does_not_exist does not exist" |
|||
====>NoCtor |
|||
====>newInstance() |
|||
object(NoCtor)#%d (0) { |
|||
} |
|||
====>newInstance(25) |
|||
string(86) "Class NoCtor does not have a constructor, so you cannot pass any constructor arguments" |
|||
====>newInstance(25, 42) |
|||
string(86) "Class NoCtor does not have a constructor, so you cannot pass any constructor arguments" |
|||
|
|||
====>WithCtor |
|||
====>newInstance() |
|||
WithCtor::__construct() |
|||
array(0) { |
|||
} |
|||
object(WithCtor)#%d (0) { |
|||
} |
|||
====>newInstance(25) |
|||
WithCtor::__construct() |
|||
array(1) { |
|||
[0]=> |
|||
int(25) |
|||
} |
|||
object(WithCtor)#%d (0) { |
|||
} |
|||
====>newInstance(25, 42) |
|||
WithCtor::__construct() |
|||
array(2) { |
|||
[0]=> |
|||
int(25) |
|||
[1]=> |
|||
int(42) |
|||
} |
|||
object(WithCtor)#%d (0) { |
|||
} |
|||
|
|||
====>WithCtorWithArgs |
|||
====>newInstance() |
|||
|
|||
Warning: Missing argument 1 for WithCtorWithArgs::__construct() in %s007.php on line %d |
|||
|
|||
Notice: Undefined variable: arg in %s007.php on line %d |
|||
WithCtorWithArgs::__construct() |
|||
array(0) { |
|||
} |
|||
object(WithCtorWithArgs)#%d (0) { |
|||
} |
|||
====>newInstance(25) |
|||
WithCtorWithArgs::__construct(25) |
|||
array(1) { |
|||
[0]=> |
|||
int(25) |
|||
} |
|||
object(WithCtorWithArgs)#%d (0) { |
|||
} |
|||
====>newInstance(25, 42) |
|||
WithCtorWithArgs::__construct(25) |
|||
array(2) { |
|||
[0]=> |
|||
int(25) |
|||
[1]=> |
|||
int(42) |
|||
} |
|||
object(WithCtorWithArgs)#%d (0) { |
|||
} |
|||
|
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue