2013-06-27 77 views
0

我想學習php類。我很困惑哪些屬性應該在類中聲明。我給一個簡單的例子來了解情況:是否有必要在php類中聲明函數的參數?

class main{ 
var $a=5; 
var $b; 
function add($c){ 
return $this->a + $this->b + $c; 
} 
} 

$load = new main(); 
$load-> $b=10; 
echo $load->add(20); //will output 35 

在上述情況下,請看到我沒有財產申報$ C類裏面。它直接從調用$ load-> add(20)進行訪問,並且運行良好。 我的問題是,雖然這是工作,但它是正確的方式,或者我必須在這種情況下申報$ c屬性? 注:可能是因爲設置了oop的魔法方法,不確定。

+0

在附註中,您不再需要這些var關鍵字。 – LMeyer

+0

Shinosha,你能告訴我爲什麼不需要用戶var關鍵字了嗎? – stockBoi

+0

因爲它已被棄用。請參閱http://stackoverflow.com/questions/1206105/what-does-php-keyword-var-do – LMeyer

回答

0

存在一些錯誤,類名(main)後面的括號和倒數第二行中的$ b之前的var $ b之前的$。

總之,這裏沒有魔法,你聲明的$a和一類$ b變量(類屬性):那你寫的方法添加,這需要一個本地參數($c),並將其添加到屬性$ a和$ b的當前對象。

執行該方法後,您將失去傳遞給該方法的值,該值分配給$c

你的例子是正確的,你不必聲明$c如果你只是想這樣使用它;相反,如果要將其用作對象屬性,則需要在其他類屬性中聲明它,例如在另一種方法中使用它。在這種情況下,你必須在類首先聲明,然後用它作爲$this->c

如:

class main { 
    ... 
    var $c; 

    function test($c){ 
    $this->c = $c; 
    ... 
    } 
} 

注意$this->c$c是兩個不同的變量:$c只是在方法的範圍,如前所述。

相關問題