>백엔드 개발 >PHP 튜토리얼 >ArrayAccess는 배열과 유사한 객체를 생성합니다.

ArrayAccess는 배열과 유사한 객체를 생성합니다.

巴扎黑
巴扎黑원래의
2016-11-23 13:38:361785검색

/**

* 싱글톤 모드 구현 클래스 -->ArrayAccess(어레이 액세스) 인터페이스

*

* @author Flyer0126

* @since 2012 /4 /27

*/

클래스 싱글{


private $name;

private static $_Instance = null;

비공개 함수 __construct()

{

}

정적 함수 로드()

{

if(null == self::$_Instance)

{

self::$_Instance = new Single();

}

return self::$_Instance;

}

공용 함수 setName($name)

{

$this->name = $name;

}

공용 함수 getName()

{

return $this->name;

}

}


$s = 싱글::load();

$s->setName("jack");

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


// 调整一下(继承ArrayAccess && 实现4个方法)

class Single은 ArrayAccess를 구현합니다

{


private $name;

private static $_Instance = null;

private 함수 __construct()

{

}

정적 함수 load()

{

if(null == self::$_Instance)

{

self::$_Instance = new Single();

}

return self::$ _Instance;

}

공개 함수 setName($name)

{

$this->name = $name ;

}

공개 함수 getName()

{

return $this->name;

}

/**

* 네 가지 메소드 구현

* offsetExists(), 요소가 정의되었는지 식별하는 데 사용

* offsetGet(), 요소의 값을 반환하는 데 사용

* offsetSet(), 요소의 새 값을 설정하는 데 사용됨

* offsetUnset(), 요소와 해당 값을 삭제하는 데 사용됨

**/

공개 함수 offsetSet($offset, $value) 

{

if (is_null($offset)) 

{

$this->container[] = $value;

else 

{

$this->container[$offset] = $value;

}

}


공개 함수 offsetGet($offset) 

{

return isset($this->container[$offset]) ? $this->container[$offset] : null;

}


공용 함수 offsetExists($offset) 

{

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

}


공개 함수 offsetUnset($offset) 

{

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

}

}


$s = 싱글::load();

$s->setName("jack");


$s ["이름"] = "마이크";


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

echo $s["name"]; //마이크

print_r($s);

/**

단일 객체

(

    [name:Single:private] => jack

    [컨테이너] => 배열

        (

            [이름] => mike

        )


)

**/


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.