<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                __set和__get是兩個比較重要的魔術方法。 舉個簡單的例子: ``` <?php /** * User: 三千 * Date: 16/3/15 * Time: 下午7:35 */ class Account{ private $user = 1; private $pwd = 2; } $a = new Account(); echo $a->user; $a->user = 5; echo $a->user; echo $a->big; ``` 返回結果: ``` Fatal error: Cannot access private property Account::$user in /www/code/php_core/1.2.1.php on line 14 ``` 報錯的意思是,不能訪問Account對象的私有屬性user,我們使用__set魔術方法: ``` <?php /** * User: 三千 * Date: 16/3/15 * Time: 下午7:35 */ class Account{ private $user = 1; private $pwd = 2; public function __set($name,$value){ echo "setting $name to $value \r\n"; $this->$name = $value; } public function __get($name){ if(!isset($this->$name)){ echo '未設置'; $this->$name = "正在為你設置默認值"; } return $this->$name; } } $a = new Account(); echo $a->user; $a->user = 5; echo $a->user; echo $a->big; ``` 返回結果 ``` 1setting user to 5 5未設置setting big to 正在為你設置默認值 正在為你設置默認值% ``` 可以看到,這次沒有報錯。 若類中定義了__set和__get這一對魔術方法,那么當給對象屬性賦值或者取值時,即使這個屬性不存在,也不會報錯,一定程度上增強了程序的健壯性。 在account類里,user屬性的訪問權限是私有的,私有屬性意味著這個屬性是類是“私有財產”,只能在類內部對其進行操作。如果沒有__set這個魔術方法,直接在類的外部對屬性進行賦值操作是會報錯的。只能通過在類中定義一個public的方法,然后在類外調用這個公開的方法進行屬性讀寫操作。 這兩個魔術方法,不需要顯式的加上public,本身就是public的,所以操作更簡單。這對方法在操作類變量時是自動調用的。如果可以把類的屬性定義為pubic的,這樣就可以隨意在類的外部進行讀寫。 不過,如果只是為了方便,類屬性在任意時候都定義成public權限顯然是不合適的,也不符合面向對象的設計思想。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看