亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php魔術方法

發布時間:2020-06-20 20:14:21 來源:網絡 閱讀:278 作者:bagys 欄目:web開發
<?php
/*
* 官方文檔:http://php.net/manual/zh/language.oop5.magic.php
*/
class magic {
    
    public $a = array(1);
    protected $b = array(2);
    private $c = array(3);
    public $d = '88';
    public $e = array('huazi'=>55);

    /**
     * 構造方法 
     * 當類被實力化時就會被出發此方法
     * 該方法就不用演示了
     */
    function __construct()
    {
        echo '構造方法:__construct()<br>';
    }
    
    
    /**
     * 對象被序列化時會先出發此方法 
     * 如果沒有此魔術方法 會把 類屬性 $a,$b,$c 序列化
     * 此方法可以指定那些屬性被序列化
     */
    public function __sleep() 
    {
        return array( 'a' ,  'b' );
    }
    
    
    /**
     * 對象被反序列化時會先出發此方法
     */
    public function __wakeup() 
    {
        echo 1;
    }
    
    /**
     * 方法用于一個類被當成字符串時應怎樣回應。例如 echo $obj; 應該顯示些什么。
     * 此方法必須返回一個字符串,否則將發出一條 E_RECOVERABLE_ERROR  級別的致命錯誤
     */
    public function __toString()
    {
        return 'echo 對象?<br>';
    }
    
    
    /**
     * 自 PHP 5.1.0 起當調用 var_export()  導出類時,此靜態 方法會被調用。 
     * 本方法的唯一參數是一個數組,其中包含按 array('property' => value, ...) 格式排列的類屬性。
     */
    public static function __set_state($array) 
    {
        return $array['d'];
    }
    
    
    /**
     * PHP 5 引入了析構函數的概念,這類似于其它面向對象的語言,
     * 如 C++。析構函數會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執行。 
     * 
     * 該方法就不用演示了
     */
    public function __destruct()
    {
        //echo 55;
    }
    
    
    /**
     * 在對象中調用一個不可訪問方法時,__call() 會被調用
     */
    public function __call($name, $arguments) {
        echo '__call() : ';
        // 注意: $name 的值區分大小寫
        var_dump($name);
        var_dump($arguments);
        echo '<br>';
        if( $name == 'abc' )
        {
            $this->$name();
        }
    }
    private function abc()
    {
        echo '999<br>';
    }
    
    
    /**
     * 用靜態方式中調用一個不可訪問方法時,__callStatic() 會被調用。 
     */
    public static function  __callStatic ( $name ,  $arguments ) 
    {
        echo '__callStatic() : ';
        // 注意: $name 的值區分大小寫
        var_dump($name);
        var_dump($arguments);
        echo '<br>';
    }

    
    /**
     * 在給不可訪問屬性賦值時,__set() 會被調用。 
     */
    public function __set( $name,$val )
    {
        echo '__set : 方法<br>';
        $this->$name = $val;
    }
    
    
    /**
     * 讀取不可訪問屬性的值時,__get() 會被調用。  
     */
    public function __get( $name )
    {
        echo '__get : 方法<br>';
        return $this->$name;
    }
    
    
    /**
     * 判斷屬性是否存在時被調用
     */
    public function __isset($name) 
    {
        echo '__isset : 方法<br>';
        return isset( $this->e[$name] );
    }
    
    
    /**
     * 當對不可訪問屬性調用 unset()  時,__unset() 會被調用。 
     */
    public function __unset($name)
    {
        echo '__unset : 方法<br>';
        unset( $this->$name );
        var_dump($name);
    }
    
    
    /**
     * 對象被克隆時被調用的
     */
    public function __clone()
    {
        echo '__clone : 方法';
        echo ': 被克隆了<br>';
    }
    
    
    /**
     * 當嘗試以調用函數的方式調用一個對象時,__invoke() 方法會被自動調用。 
     */
    public function  __invoke ( $x ) 
    {
        echo '__invoke : 方法 <br>';
         var_dump ( $x );
    }

}

$ob = new magic();


/**
 * __sleep() 事例
 * var_dump(serialize($ob));
 */


/**
 * __wakeup 事例
 * $ser = serialize($ob);
 * unserialize($ser);
 */


/**
 * __toString 事例
 * echo $ob;
 */


/**
 * __set_state 事例 手冊里
 * eval('$b = '.var_export($ob,true).';');
 * var_dump($b);
 */


/**
 * __call 事例
 * $ob->meiyou();
 * $ob->abc(1,2);
 */



/**
 * __callStatic 事例 
 * magic::kao(22);
 */


/**
 * __set 事例
 * print_r($ob);
 * $ob->c=2;
 * print_r($ob);
 */



/**
 * __get 事例
 * print_r($ob->c);
 */



/**
 * __isset 事例
 * var_dump( isset($ob->huazi) );
 */


/**
 * __unset 事例
 * unset($ob->b);
 * print_r($ob);
 */



/**
 * __clone 事例
 * $c = clone $ob;
 */



/**
 * __invoke 事例
 * $ob('hehe');
 */


class a{
    function __construct(){
        
    }
    function __destruct(){
        
    }
    function __call( $name,$val ){
        
    }
    static function __callStatic($name, $arguments) {
    }
    function __get($name){
        
    }
    function __set($name,$val){
        
    }
    function __unset($name){
        
    }
    function __isset($name){
        
    }
    function __toString() {
    }
    function __set_state($array) {
    }
    function __invoke(){
        
    }
    function __clone(){
        
    }
    function __sleep(){
    }
    function __wakeup(){
    }    
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

常州市| 新郑市| 五寨县| 钟祥市| 蚌埠市| 交口县| 金沙县| 宝应县| 琼结县| 西平县| 都江堰市| 融水| 东山县| 洪江市| 方城县| 祁东县| 沁阳市| 信丰县| 西峡县| 慈溪市| 图片| 贵德县| 弥渡县| 阿拉尔市| 双柏县| 平远县| 宁化县| 搜索| 奎屯市| 衡南县| 大名县| 红原县| 含山县| 屏山县| 莎车县| 海安县| 崇阳县| 类乌齐县| 商都县| 浦县| 水城县|