2011-05-29 68 views
0

我正在學習OOP PHP的過程。我已經掌握了父母與孩子之間的關係,並互相交流,所以在這方面都很好。

這行代碼雖然讓我困惑,我不完全相信它的作用:可以給你的代碼的一個清晰的概念

$this->var1 = function($var2); 

信息:這是位於的構造函數中的線一個類和var1在上面立即聲明爲私有。要調用的函數放置在類的外部,但位於同一個文件中。

我知道它本質上是在傳遞$ var2時調用當前類的函數。但是「var1 =」部分究竟做了什麼?爲什麼不包括美元符號?

語法的作用,因爲我正在看別人的代碼,它會產生所需的結果。我只是想學習它以備將來參考。

預先感謝您。

NOLO

+3

這是說這是字面上還是「功能」某些功能的其他名稱?這很重要,因爲'function'是一個具有特殊含義的保留關鍵字。 – deceze 2011-05-29 01:34:46

+0

仔細查看[properties](http://www.php.net/manual/en/language.oop5.properties.php)上的PHP文檔。 – outis 2011-05-29 01:39:23

+0

謝謝outis。一直在做。 :) 減速,不,這不是它說的。我只是把語法做成泛型的,因爲當時我知道每個部分是什麼,但是不能翻譯語法。 – Nolo 2011-06-13 14:52:33

回答

0

假設function實際上是一個函數的名稱,而不是定義一些功能,它會設置屬性var1對當前類實例(也就是$this是)對的yourFunction($var2)結果;

例如:

class MyClass { 
    public $id; 

    function updateId($newid) { 
     $this->id=$newid; 
    } 
} 

$test=new MyClass(); 
$test->updateId(50); 

echo $test->id; 

這個腳本的輸出將是50

通過調用updateId()函數,類更新自己的內部變量id

+0

這也可能有助於澄清OP對此部分有點關注:「它調用當前類的函數*」。 – 2011-05-29 01:39:07

+0

@zerocrates,很好的電話,我已經添加了一個例子。 – Brad 2011-05-29 01:44:32

1

它將對象$thisvar1字段設置爲該函數返回的值。需要美元符號來解析this(對象),並且->var1告訴php找到該對象的var1字段,因此在那裏不需要$

+0

謝謝!與此同時,我從那以後學會了堆! :) – Nolo 2011-06-13 14:44:45

0

它將函數的結果($ var2)存儲在$ var1中。

在程序PHP中,同樣會$var1 = nameOfFuction($var2);

內一類,變量不能直接訪問。相反,語法變爲:

$this->指示您正在訪問當前類的屬性(變量)。 var1是屬性的名稱。

創建類時,將調用構造方法(類內的函數),並且var1會自動填充nameOfFuction($ var2)的結果。

當一個屬性是「private」時,這意味着它不能從類的外部調用,這意味着它只能在類中使用,並且可能通過公共方法訪問。

0
$this 

指當前類實例和

$this->var1 

本質上是指這個類的實例(通常聲明或結合魔術方法如__get或__set

使用的變量/屬性$ VAR1

看看這個爲參考,以魔術方法

http://php.net/manual/en/language.oop5.magic.php

0

當你在PHP中定義一個類你都能夠給類的實例變量和函數變量:

class Foo 
{ 
    public $bar = 'bar'; 

    public function __construct($bar) 
    { 
    echo $bar; //this line will echo 'baz' 
    echo $this->bar; //this line will echo 'bar'; 
    } 
} 

$foo = new Foo('baz'); 

要訪問您需要使用對象爲基準的類的實例的屬性。外部這將是:

$foo->bar = 'fizz'; 

而在內部,它是:

$this->bar = 'buzz'; 

所以在最後,並在構造線的$obj->var1值設置爲的function($var2)結果。

相關問題