/**
* シングルトンモード実装クラス -->ArrayAccess (配列アクセス) インターフェイス
*
* @authorFlyer0126
* @since 2012/4/27
*/
class Single{
private $name;
private static $_Instance = null;
private function __construct()
{
}
静的関数load()
{
if(null == self::$_Instance)
{
self::$_Instance = new Single();
}
return self::$ _Instance;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $ this->name;
}
}
$s = Single::load();
$s->setName("jack");
echo $s->getName (); //jack
// 调整一下(继承ArrayAccess && 实现4个メソッド)
class Single 実装 ArrayAccess
{
private $name;
private $_Instance = null;
プライベート関数__construct()
{
}
静的関数load()
{
if(null == self::$_Instance)
{
self::$_Inスタンス= new Single();
}
return self::$_Instance;
}
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
/**方法* 4つのメソッドを実装します实* offsetexist()、要素がdeftedを定義したかどうかを識別するために使用されます。*/
public function offsetSet($offset, $value)
{
if (is_null($offset))
{
$this->container[] = $value;
}
else
{
$this->container[$offset] = $value;
}
}
public function offsetGet($offset) { return isset($this->container[$offset]) ? $this->container[$offset] : null; }$s["name"] = "マイク";
echo $s->getName(); //jack
echo $s["name"]; //マイク
print_r($s);
(
[name:Single:private] => jack
[container] => Array
(
[name] => )
) **/