如果让一个对象,可以通过数组模式 和 对象模式 访问其成员属性; 100分

WBOY
풀어 주다: 2016-06-23 13:39:27
원래의
993명이 탐색했습니다.

class a{
public $aaa=1;

}

$a=new a();
echo $a->aaa;  //1
同时可以直接:
echo $a['aaa']; //1
  
在PDO中,可以 $db->fetch(PDO::FETCH_LAZY)来实现,这可以说明,PHP是可以做到上述结果的; 请问具体是如何实现的?
求原理,谢谢;


回复讨论(解决方案)

<?php$a = new ArrayObject();$a->b = 1;$a['b'] = 2;echo $a->b;echo $a['b'];
로그인 후 복사


ArrayObject可以继承,但不允许子类有方法,具体的看手册吧我也不清楚...
说句题外话没恶意,我感觉这玩意没意义...

要写个方法实现。

class a{    public $aaa=1;    function fetch($type){        if($type=='assoc'){            $ret = new stdClass();            $ret->aaa = $this->aaa;        }elseif($type=='array'){            $ret = array();            $ret['aaa'] = $this->aaa;        }        return $ret;    }}$d = new a();$obj = $d->fetch('assoc');var_dump($obj);$arr = $d->fetch('array');var_dump($arr);
로그인 후 복사


object(stdClass)[2]  public 'aaa' => int 1array (size=1)  'aaa' => int 1
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!