2010-06-28 119 views
0

我想知道;可以說你在一個新班級中開始一個對象;在你的應用程序的開始。PHP共享對象,他們會在另一個類中更新嗎?

如果您稍後將該對象傳遞給另一個類;作爲一個變量,並添加/修改它的東西。它會在原始對象和它的主類中更新嗎?

或者它成爲一個'新'對象,一個新類中的不同對象?並且在整個使用過程中它會繼續保持不變。在應用程序的任何部分?

這是爲了我自己的澄清,而不是一個特定的編碼問題。

+1

爲什麼你不寫一些scratch代碼並自己嘗試?這樣你將絕對鞏固你的解決方案的知識。而且它可能比等待Stack Overflow的答案花費更少的時間! – sanbikinoraion 2010-06-28 16:33:35

回答

4

對象在php5中通過引用傳遞,所以對象被「更新」,除非你克隆它。

+0

太好了,謝謝。清理起來了。 – waxical 2010-06-28 16:22:49

1
  • 對象沒有啓動,它被實例化,它成爲一個類的實例。
  • 您無法將對象傳遞給類。您可以將它傳遞給一個函數或方法,但在這兩個中沒有任何區別。在每種具有適當OOP的語言中,對象都作爲引用傳遞,因此任何位置上的更新都會反射到任何地方。這是一個對象,你通過它,修改它,並保持修改。
0

你應該重讀什麼類。必需的車前面例子:

想象一下類Car。現在,您將創建一個抽象的概念的新實例:

$myCar = new Car(); 
$myCar->color = "blue"; 
$yourCar = new Car(); 
$yourCar->color = "red"; 

每個對象都有自己的屬性。該類可以在其構造函數中設置默認值,但將一輛車的顏色更改爲橙​​色不會影響任何其他汽車。

在php5(php4 oo很奇怪,我不會建議它初學者),每當你從一個包含一個對象的變量賦值時,對象引用被複制。因此,執行後

$ourCar = $yourCar; 
$ourCar->color = "yellow"; 

,$yourCar->color是「黃色」。

相關問題