<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>

                ## __set( )方法自動創建數據對象原始數據 >[info] 其實就是通過魔術方法動態創建屬性的方法來生成數據對象 #### 2. 源碼: >[info] 本教程如無特別說明:源碼均指:Model.php 類文件中的內容。 文件位置:/thinkphp/library/think/Model.php ~~~ /** * 修改器 設置數據對象的值 * @access public * @param string $name 名稱 * @param mixed $value 值 * @return void */ public function __set($name, $value) //魔術方法來動態設置數據對象$data[] { $this->setAttr($name, $value); //鍵值對方式寫入 } ~~~ >[info] 看了源碼,發現了一個熟悉的身影:setAttr( )方法,你猜對了,這個方法在內部就是通過setAttr方法來給$data屬性賦值,來完成數據對象的創建。 * 小常識:魔術方法: >[info] PHP面向對象編程中,如果外部訪問對象中一個不存在的屬性或方法時, 為了避免訪問錯誤而定義的一組方法:魔術方法。 #### 3. 參數所返回值: * 參數: | 序號 | 參數 | 說明 | | --- | --- | --- | | 1 | $name / string 字符串 | 數據對象中$data屬性數組元素的鍵名 | | 2 | $value / mixed 復合類型 | 數據對象中$data屬性數組元素的值 | * 返回值:未定義,可以視為無 #### 4. 實例演示: 1. 任務:給模型對象逐個賦值,創建數據對象 >[info] Staff模型類創建與前面一樣的,目前我們使用一個空的模型類就可以完成測試 * 自定義模型類: Staff.php ~~~ <?php namespace app\index\model; //導入模型類 use think\model; class Staff extends model { //自定義模型類代碼 } ~~~ * 控制器:Index.php ~~~ <?php namespace app\index\controller; //導入模型類 use app\index\model\Staff; class Index { public function index(){ //1.創建模型對象$model $model = new Staff(); //2.__set()方法創建數據對象 $model -> id = 50; $model -> name = 'Tom'; $model -> age = 18; //3.查看該數據對象 dump($model); } } ~~~ >[success] Index.php 代碼中并沒有出現 __set() 方法,不要感到奇怪,因為魔術方法是自動調用用。 > 在本例中,我們給模型對象$model添加了三個屬性,其類內部的__set()方法,將會自動添加到類屬性$data數組中,完成數據對象的創建。 * 瀏覽器查看結果: tp5.com/index.php/index/index > tp5.com 是我們之前配置好的一個本地域名 ~~~ object(app\index\model\Staff)#5 (28) { //這里略去與本例無關的屬性 ······ ["data":protected] => array(3) { ["id"] => int(50) ["name"] => string(3) "Tom" ["age"] => int(18) } //這里略去與本例無關的屬性 ······ } ~~~ #### 5. 總結: >[success] 用魔術方法給模型對象初始化,來創建數據對象,實際開發中經常用到。特別是在CURD操作中,這種方式,符合ORM(對象關系映射),直觀高效!請同學們盡快的熟悉這種語法方式。
                  <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>

                              哎呀哎呀视频在线观看