ホームページ > バックエンド開発 > PHPチュートリアル > [ThinkPHP] Model 基本クラスの _construct ステップの _initialize を最後に移動すると、どのような影響がありますか?

[ThinkPHP] Model 基本クラスの _construct ステップの _initialize を最後に移動すると、どのような影響がありますか?

WBOY
リリース: 2016-06-13 11:58:18
オリジナル
1207 人が閲覧しました

【ThinkPHP】Model基本クラスの__constructメソッドの_initializeを最後に移動するとどのような影響がありますか?
バージョン: ThinkPHP 3.1.3
問題: _initialize() が ThinkPHP のカスタム モデルで定義されている場合、この _initialize のデータをクエリするために $this-> を使用できません。
私のアイデア: Model 基本クラスの __contruct メソッドの _initialize をメソッドの最後に移動すると、どのような影響がありますか?分析してください!

File/ThinkPHP/Lib/Core/Model.class.php、モデル基本クラス __contruct の $this->_initialize が $this->db に移動された後の影響は何ですか...?

<br />    /**<br />     * 架构函数<br />     * 取得DB类的实例对象 字段检查<br />     * @access public<br />     * @param string $name 模型名称<br />     * @param string $tablePrefix 表前缀<br />     * @param mixed $connection 数据库连接信息<br />     */<br />    public function __construct($name='',$tablePrefix='',$connection='') {<br />        // 模型初始化<br />        $this->_initialize();<br /><br />        // 获取模型名称<br />        if(!empty($name)) {<br />            if(strpos($name,'.')) { // 支持 数据库名.模型名的 定义<br />                list($this->dbName,$this->name) = explode('.',$name);<br />            }else{<br />                $this->name   =  $name;<br />            }<br />        }elseif(empty($this->name)){<br />            $this->name =   $this->getModelName();<br />        }<br />        // 设置表前缀<br />        if(is_null($tablePrefix)) {// 前缀为Null表示没有前缀<br />            $this->tablePrefix = '';<br />        }elseif('' != $tablePrefix) {<br />            $this->tablePrefix = $tablePrefix;<br />        }else{<br />            $this->tablePrefix = $this->tablePrefix?$this->tablePrefix:C('DB_PREFIX');<br />        }<br /><br />        // 数据库初始化操作<br />        // 获取数据库操作对象<br />        // 当前模型有独立的数据库连接信息<br />        $this->db(0,empty($this->connection)?$connection:$this->connection);<br /><br /><br />        //假如把_initialize移动到这里会产生什么影响?<br />        //$this->_initialize();<br />    }<br /><br />
ログイン後にコピー


-----解決策---------
を初期化する本来の目的は
を初期化することであり、_initialize にはパラメーターも戻り値もありません。したがって、スケジュールされたプロセス
の実行を妨げることはできないため、

の場所は問題ではありません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート