sql >> データベース >  >> RDS >> Mysql

PHPの複数オブジェクト関数呼び出し

    これはメソッドチェーンと呼ばれ、class($ this)への参照、またはこれらの関数からの別のクラスオブジェクトを返すことによって行われます。次に、返されたオブジェクトのメソッドを呼び出すことができます。

    これが簡単な例です。

    class foo{
         protected $_bar;
    
         public function bar($value){
              $this->_bar = $value;
              return $this;
        }
    
    
       public function out(){
            echo $this->_bar;
       }
    }
    
    $a = new foo();
    $a->bar('hello')->out();
    

    出力:

    'hello'
    

    もう少し説明すると、上記のコード$a->bar('hello')->out(); これを行うのとほぼ同じです:

     $a = new foo();
     $b = $a->bar('hello');  //$a and $b are the same instance of the object
     $b->out();
    

    bar() $thisを返します $bに割り当てることができます 上記のように、out()を呼び出します 。しかし、$a および$b どちらもfooの同じインスタンスを参照します $thisを返したのでオブジェクト bar()から 。したがって、次の呼び出しのためにreturnオブジェクトを直接参照できるため、この余分な「スプリアス」変数は必要ありません。これは、メソッドから返されるすべてのオブジェクト($ thisだけでなく)で機能しますが、チェーン内の次の呼び出しは、返されたオブジェクトに対して行われることは明らかです。




    1. MySQL-インデックスを作成するのにどのくらいかかりますか?

    2. 仮想列と機能インデックス

    3. 2つの自動インクリメント列または他の列の自動インクリメントと同じ値

    4. MySQLは列のデータ型をVARCHARからINTに変換します