mirror of
https://github.com/php/php-src.git
synced 2024-10-19 23:44:13 +00:00
79 lines
2.0 KiB
PHP
79 lines
2.0 KiB
PHP
--TEST--
|
|
ReflectionObject::IsInstantiable() - variation - constructors
|
|
--FILE--
|
|
<?php
|
|
|
|
class noCtor {
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class publicCtorNew {
|
|
public function __construct() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class protectedCtorNew {
|
|
protected function __construct() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class privateCtorNew {
|
|
private function __construct() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class publicCtorOld {
|
|
public function publicCtorOld() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class protectedCtorOld {
|
|
protected function protectedCtorOld() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
class privateCtorOld {
|
|
private function privateCtorOld() {}
|
|
public static function reflectionObjectFactory() {
|
|
return new ReflectionObject(new self);
|
|
}
|
|
}
|
|
|
|
|
|
$reflectionObjects = array(
|
|
noCtor::reflectionObjectFactory(),
|
|
publicCtorNew::reflectionObjectFactory(),
|
|
protectedCtorNew::reflectionObjectFactory(),
|
|
privateCtorNew::reflectionObjectFactory(),
|
|
publicCtorOld::reflectionObjectFactory(),
|
|
protectedCtorOld::reflectionObjectFactory(),
|
|
privateCtorOld::reflectionObjectFactory()
|
|
);
|
|
|
|
foreach($reflectionObjects as $reflectionObject ) {
|
|
$name = $reflectionObject->getName();
|
|
echo "Is $name instantiable? ";
|
|
var_dump($reflectionObject->IsInstantiable());
|
|
}
|
|
?>
|
|
--EXPECTF--
|
|
Is noCtor instantiable? bool(true)
|
|
Is publicCtorNew instantiable? bool(true)
|
|
Is protectedCtorNew instantiable? bool(false)
|
|
Is privateCtorNew instantiable? bool(false)
|
|
Is publicCtorOld instantiable? bool(true)
|
|
Is protectedCtorOld instantiable? bool(false)
|
|
Is privateCtorOld instantiable? bool(false)
|