ホームページ  >  記事  >  バックエンド開発  >  ArrayAccess は配列のようなオブジェクトを作成します

ArrayAccess は配列のようなオブジェクトを作成します

巴扎黑
巴扎黑オリジナル
2016-11-23 13:38:361761ブラウズ

/**

* シングルトンモード実装クラス -->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;

}


public function offsetExists($offset)

{

return isset($this->gt;container[$offset]);

}


public function offsetUnset($offset)

{

unset($this->container[$offset]);

}

}


$s = Single::load ();

$s->setName("jack");

$s["name"] = "マイク";


echo $s->getName(); //jack

echo $s["name"]; //マイク

print_r($s);

/**

単一オブジェクト


(

[name:Single:private] => jack

[container] => Array

(

[name] => )

)

**/

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。