2014-04-18 92 views
-3

如何使用層級語法創建一個php類,如示例中所示?Oop類級別的語法

class oop 
{ 
    function variable ($var) 
    { 
     return $var; 
    } 

    function print ($var) 
    { 
     echo $var; 
    } 
} 
oop::variable ($var) -> print(); 
+0

我不知道你想在這裏做什麼。 'variable'函數實際上並沒有做任何事情,因爲它只是返回它自己的參數。 'print'方法在類'oop'上,所以如果'$ var'是'oop'('$ var = new oop();')的一個實例,那麼'$ var-> print();'會起作用,但沒什麼特別的。 – IMSoP

回答

2

我不知道你需要什麼,但試試這個:

$var = '1111'; 
class oop 
{ 
    public $var; 
    private function __construct($var){ 
     $this->var = $var; 
    } 
    static function variable ($var) 
    { 
     return new oop($var); 
    } 

    function prints() 
    { 
     echo $this->var; 
    } 
} 
oop::variable ($var) -> prints(); 

Demo.

+0

另一個很好的猜測。儘管如此,不確定'prints'的可選參數是否會增加混淆。 – IMSoP

+0

功能'打印'保留,所以它可能會拋出異常我猜.. –

+0

我不是這個名字,我的意思是'$ var =''''和'$ var? $ var:$ this-> var'業務。這個例子並不需要它,它會導致代碼混亂,所以最好保持簡單,只要說'echo $ this-> var;' – IMSoP

2

我認爲您正在尋找類似的東西?

class Oop 
{ 
    private $var; 

    public function variable($var) 
    { 
     $this->var = $var; 
     return $this; 
    } 

    function print() 
    { 
     echo $this->var; 
    } 
} 



$oop = new Oop(); 
$oop->variable($var)->print(); 
+0

這是比我更好的猜測。 – IMSoP

+0

我認爲OP正在尋找工廠模式的正確示例實現。 – Kaii

0

您正在使用它喜歡它是靜態的:

class oop 
{ 
    public static function variable ($var) 
    { 
     return $var; 
    } 

    public static function my_print ($var) 
    { 
     echo $var; 
    } 
} 
$var = oop::variable("TEST"); 
oop::my_print($var); 

http://codepad.viper-7.com/X0ClIk

我已經改變了你的方法print的名字,因爲在PHP中已經存在,所以我不會你推薦使用此方法名稱。

+0

一個合理的猜測,儘管我不確定在這個解釋下''variable'函數的目的是什麼。 – IMSoP

+0

我不知道打火機,但我可以想象OP在打印前想驗證數據。另外,在打印之前,我會傳遞'$ var' trought'variable()'。 –