91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

吉水县| 苗栗市| 永春县| 阿坝县| 白银市| 塔城市| 上栗县| 新巴尔虎左旗| 翼城县| 禄丰县| 栾城县| 新乡市| 连山| 巴林左旗| 凤凰县| 精河县| 木兰县| 玉环县| 江油市| 新龙县| 华宁县| 丹棱县| 图们市| 双峰县| 抚远县| 灵璧县| 石景山区| 霸州市| 肇东市| 汽车| 盐城市| 冀州市| 吴忠市| 峡江县| 合水县| 河南省| 高清| 南汇区| 华蓥市| 石景山区| 泰和县|