mirror of
https://github.com/php/php-src.git
synced 2024-09-30 22:36:12 +00:00
40 lines
779 B
Plaintext
40 lines
779 B
Plaintext
|
--TEST--
|
||
|
Bug #53748 (Using traits lead to a segmentation fault)
|
||
|
--FILE--
|
||
|
<?php
|
||
|
|
||
|
trait Singleton {
|
||
|
protected static $instances=array();
|
||
|
abstract protected function __construct($config);
|
||
|
public static function getInstance($config) {
|
||
|
if (!isset(self::$instances[$serialize = serialize($config)])) {
|
||
|
self::$instances[$serialize] = new self($config);
|
||
|
}
|
||
|
return self::$instances[$serialize];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class MyHelloWorld {
|
||
|
use Singleton;
|
||
|
public function __construct($config)
|
||
|
{
|
||
|
var_dump( $config);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
$o= myHelloWorld::getInstance(1);
|
||
|
$o= myHelloWorld::getInstance(1);
|
||
|
$o= myHelloWorld::getInstance(2);
|
||
|
$o= myHelloWorld::getInstance(array(1=>2));
|
||
|
$o= myHelloWorld::getInstance(array(1=>2));
|
||
|
|
||
|
?>
|
||
|
--EXPECTF--
|
||
|
int(1)
|
||
|
int(2)
|
||
|
array(1) {
|
||
|
[1]=>
|
||
|
int(2)
|
||
|
}
|