2014-10-27 61 views
0

我需要PHP中的幫助來創建多維類和函數。如何在PHP中創建可鏈式類方法

我需要調用函數是這樣的:

$app = new class1(); 
$app->function1()->subfunction1()->subfunclevel2(); 

我有很多變種,但似乎沒有任何工作。

在Javascript中,我會創造這樣的方法:

(function($){ 
    function class1(){ 
     var function1 = function(){ 
      var subfunction1 = function(){ 

       }; 
     }; 
    }; 
}); 

所以這次我們將調用像這樣:

$.class1.function1.subfunction1(); 

我不知道如何使用PHP實現這一目標。

+4

JavaScript的'class.function1.subfunction2'語法實際上並沒有調用函數'function1',而是利用了EMCAScript中「屬性」的工作方式。 PHP的對象屬性不能以相同的方式工作。 – Dai 2014-10-27 02:00:05

+0

此外,您試圖實現的不是「多維」類或函數的示例。 – Dai 2014-10-27 02:00:43

+0

PHP類和方法不像你認爲的那樣工作。你不能用你在PHP中所要求的,也不能明白你爲什麼想要。 – 2014-10-27 02:01:36

回答

1

我想你問的是方法鏈?您可以返回對每個函數中的對象的引用來執行此操作。

class class1 
{ 
    public function method1() 
    { 
    echo "method1"; 
    return $this; 
    } 

    public function method2() 
    { 
    echo "method2"; 
    return $this; 
    } 
} 

$class1_inst = new class1(); 
$class1_inst->method1()->method2(); // method1method2 
+1

謝謝!這是我想要的。 – shalvasoft 2014-10-27 17:23:58