クラスの高度な使用テクニックのまとめ(一)

1534 ワード

1.パラメータ伝達の組合せ接続の使用例(コアポイントは中間接続の方法であり、一般的には$this)
$class->func1($v1)->func2($v2)->func3($v3);
class   a {
   protected   $b=5;
   protected   $a=3;
   protected   $c=7;
   
 public  function  test($val) {
   $this->b=$val;
   return    $this;
}
public function   test2($val){
  $this->a=$val;
   return  $this;
}
public  function   test3() {
  $sum =$this->b*$this->b+$this->a*$this->a;
  return   $sum;
}
}
class   b extends  a  {
   public  function  god() {
        $res =$this->test(4)->test2(8)->test3();
        return  $res;
   }
}
$m = new b();
$c = $m->god();
print_r($c);

2.パラメータ深層呼び出しあるクラスのあるメソッドを呼び出すと、あるクラスのメソッドが存在しないことを検出し、別のクラスのメソッドを呼び出して補う必要がある
class   a  {
  public  function __call($method,$args) {
        $b  = new b();
      $m = call_user_func_array(array($b,$method),$args);
    return   $m;
 }
}
class  b  {
     public  function   test($val) {
           return    $val;
       }
}
$a1 = new  a();
$f =   $a1->test(123);
print_r($f);

3.クラスの反射を読み込みます(コメントとメソッド、および反射によって値を取得できるメソッドコメントも含まれます).
class  b  {
     /**   This function  is  test*/
     public  function   test($val) {
           return    $val;
       }
       /**  This function  is  test1  */
     public  function  test1($val)  {
          return   $val*$val;
     }
}
$reflection = new ReflectionClass ( "b" ); 
  $m1 = $reflection->getMethod("test");
  $cmt = $m1->getDocComment();
  print_r($cmt);