2013-11-10 25 views
0

我正在寫使用PHP 5.5的一些代碼,一邊寫我誤寫成的,而不是傳遞參數的方法,像下面的分配:在PHP中,文字與方法/函數的含義是什麼?

$user->setPostCnt = 0; 
$user->setAdmin = false; 

,它應該是順理成章的:

$user->setPostCnt(0); 
$user->setAdmin(false); 

而PHP在解析它時沒有返回任何錯誤或警告。正因爲如此,我發現問題(兩個參數都爲空),並且我認爲我使用的庫中存在一個錯誤(即,我確信,在執行一些數據操作時,庫將0false解釋爲null)。

那麼,這是什麼類型的分配:

$object->methodName = value; 

在PHP中呢?

+1

您剛創建新屬性:) –

+0

沒有一個具體的例子,我們只能猜測。它*可能*只是將一個值分配給與方法具有相同名稱的成員變量。 –

+1

然後,你只是分配給以前未定義的屬性。方法和變量存在於不同的命名空間中。 (有時它可能會調用'__set',並且使用更多的混合實現另一種方法;但可能不會在您的情況下)。沒有什麼是PHP 5.5特定的,順便說一句。 – mario

回答

1

什麼我明白,當你使用

$object->methodName = value;

意味着你訪問/分配類的屬性/變量,而

$user->setPostCnt(0); $user->setAdmin(false);

意味着你使用該類的方法/功能

+0

是的,我知道這一點。但是這個屬性不存在。我不知道PHP會在這種情況下「即時」創建這個屬性。 – silmeth

+1

@silmeth PHP以這種方式創建每個變量! –

+0

是的,正如我所說我是PHP noob,我太習慣C++類了;-)。仍然不能完全理解我腦海中動態創建的變量。 :) – silmeth

相關問題