{"id":233,"title":"php\u9b54\u672f\u65b9\u6cd5","good":0,"bad":0,"hit":2366,"created_at":"2016-05-21 15:34:49","content":"

<?php\/* * php\u9b54\u672f\u65b9\u6cd5 *\/class test{    public $name='hr';    private $rate;\/\/\u6c47\u7387    public $content;    public function __construct($string=null)    {        $this->content=$string;        echo '\u5bf9\u8c61\u88ab\u5b9e\u4f8b\u5316\u524d\u8c03\u7528__construct()<hr\/>';    }    public function __toString()    {        return '\u5f53\u5bf9\u50cf\u88ab\u5f53\u505a\u5b57\u7b26\u4e32\u65f6\uff0c\u81ea\u52a8\u8c03\u7528___toString\u65b9\u6cd5<hr\/>';\/\/\u8981\u7528return \u8fd4\u56de    }    public function __invoke()    {        echo '\u5f53\u5bf9\u8c61\u88ab\u5f53\u6210\u65b9\u6cd5\u65f6\uff0c\u81ea\u52a8\u8c03\u7528__invoke\u65b9\u6cd5<hr\/>';    }    public function __call($name, $arguments)    {        echo '\u5f53\u5bf9\u8c61\u8c03\u7528\u4e00\u4e2a\u4e0d\u5b58\u5728\u7684\u65b9\u6cd5\u65f6\uff0c\u4f1a\u81ea\u52a8\u8c03\u7528__call\u65b9\u6cd5<br\/>';        echo '\u5f53\u524d\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u662f'.$name.'<br\/>';        echo '\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570\u662f:'.print_r($arguments);        echo '<hr\/>';    }    public static function __callStatic($name, $arguments)    {        echo '\u5f53\u9759\u6001\u8c03\u7528\u4e00\u4e2a\u4e0d\u5b58\u5728\u7684\u65b9\u6cd5\u65f6\uff0c\u4f1a\u81ea\u52a8\u8c03\u7528__callSatic\u65b9\u6cd5,\u6ce8\u610f\u8fd9\u4e2a\u65b9\u6cd5\u8981\u7528static\u4fee\u9970<br\/>';        echo '\u5f53\u524d\u8c03\u7528\u7684\u65b9\u6cd5\u540d\u662f'.$name.'<br\/>';        echo '\u4f20\u9012\u8fc7\u6765\u7684\u53c2\u6570\u662f:'.print_r($arguments);    }    public function __get($name)    {        return '<hr\/>\u8bfb\u53d6\u4e0d\u53ef\u8bbf\u95ee\u5c5e\u6027\u7684\u503c\u65f6\u4f1a\u81ea\u52a8\u8c03\u7528__get\u65b9\u6cd5';    }    public function __set($name, $value)    {        echo '<hr\/>\u5728\u7ed9\u4e0d\u53ef\u8bbf\u95ee\u5c5e\u6027\u8d4b\u503c\u65f6\uff0c\u5f53\u524d\u8981\u5c06'.$name.'\u8bbe\u7f6e\u4e3a'.$value;    }    public function __isset($name)    {        echo '<hr\/>\u5f53\u5bf9\u4e0d\u53ef\u8bbf\u95ee\u5c5e\u6027\u8c03\u7528 isset() \u6216 empty() \u65f6\uff0c__isset() \u4f1a\u88ab\u8c03\u7528'.$name;    }    public function __unset($name)    {        echo '<hr\/>\u5f53\u5bf9\u4e0d\u53ef\u8bbf\u95ee\u5c5e\u6027\u8c03\u7528 unset() \u65f6\uff0c__unset() \u4f1a\u88ab\u8c03\u7528'.$name;    }    public function __clone()    {        echo '<hr\/>\u5982\u679c\u6709\u4eba\u514b\u9686\u6211\uff0c\u5c06$name\u7684\u503c\u4ece'.$this->name.'\u6539\u4e3anoName';        $this->name='noName';    }    public function __sleep()    {        $this->content='\u8fd9\u662f\u4e2a\u79d8\u5bc6';        return array('content');    }    public function __wakeup()    {        $this->content='\u53ef\u4ee5\u770b\u6211\u7684\u79d8\u5bc6';    }    public function __destruct()    {        echo '<hr\/>\u5bf9\u8c61\u7684\u6240\u6709\u5f15\u7528\u90fd\u88ab\u5220\u9664\u6216\u8005\u5bf9\u8c61\u88ab\u9500\u6bc1\u65f6\u8c03\u7528__destruct()';    }}$obj=new test('\u6211\u7231\u5c0f\u7ea2');echo $obj;\/\/\u8c03\u7528__toString()\u65b9\u6cd5echo $obj();\/\/\u8c03\u7528__invoke()\u65b9\u6cd5$obj->notExistFunction("name","age");\/\/\u5b9e\u4f8b\u5316\u8c03\u7528\u4e00\u4e2a\u4e0d\u5b58\u5728\u7684\u65b9\u6cd5\uff0c\u81ea\u52a8\u8c03\u7528__calltest::notExistFunction("sex","birthday");\/\/\u9759\u6001\u8c03\u7528\u4e00\u4e2a\u4e0d\u5b58\u5728\u7684\u65b9\u6cd5\uff0c\u81ea\u52a8\u8c03\u7528__callStaticecho $obj->notExistProperty;\/\/__get\u65b9\u6cd5$obj->rate=1;\/\/__setisset($obj->notExistPproperty);\/\/__issetempty($obj->rate);\/\/__isset()unset($obj->rate);\/\/__unset();$obj2=clone $obj;\/\/__clone ,\u6b64\u65f6 $obj2->name\u7684\u503c\u4e3a noName ,\u8c8c\u4f3c\u8fd8\u8c03\u7528\u4e86\u4e00\u6b21__destruct\u65b9\u6cd5echo '<hr\/>'.serialize($obj).'<br\/>';\/\/serialize\u5e8f\u5217\u5316\u524d\u5148\u8c03\u7528__sleep()echo '<pre>';echo print_r(unserialize(serialize($obj)));\/\/unserialize\u53cd\u5e8f\u5217\u5316\u524d\u5148\u8c03\u7528__wakeup(),\u8c8c\u4f3c\u4e5f\u8c03\u7528\u4e86\u4e00\u6b21__destruct()echo '<\/pre>';<\/p>

<\/p>

<\/p>

\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>

<\/p>

<\/p>"}