2011-03-07 54 views
1

PHP的鬆散類型結構如何與PHP的面向對象特性一起使用?PHP的面向對象性質

另外,PHP是一種純粹的面嚮對象語言嗎?

在此先感謝。

我的意思是指出PHP的鬆散類型的本質。我的意思是變量聲明,確切地說。 PHP的這個缺點是如何面向對象的。 PHP5是否具有純面向對象的功能?

+0

你特別指的是第一個問題?隨着灑上橙子,他們一起走得很好。 – deceze 2011-03-07 09:55:59

+3

動態類型和OO沒有問題。看看Python和JavaScript。那麼你的問題實際上是關於什麼? – 2011-03-07 09:56:26

+0

它隨你輸入:) – 2011-03-07 09:57:20

回答

4

不,PHP不是OOP專用的語言。事實上,他們稍後實施了OOP。

PHP的失敗類型的本質可以是bitc *,但同時它可以非常方便。我真的沒有看到這個問題。如果你想使用嚴格的打字,你必須在你的代碼中強制它。你可以明確地投下變量爲特定類型:

$integer = (int) $stringVariableWithIntegerValue;

而且你可以使用===操作強迫型檢查。在我看來,PHP並不是一個完整的OOP實現,但它自5.x以來運行良好。

$integer = 1; 
$string = "1"; 

if($integer === $string) { // Will be false 
... 

if($integer == $string) { // Will be true 
... 
+0

謝謝@Stageman。我現在很清楚。再次感謝 – ruki 2011-03-07 10:17:29

2

我的意思是指出PHP的鬆散類型性質。我的意思是變量聲明,確切地說。 PHP的這個缺點是如何面向對象的。

你似乎在某種程度上認爲動態打字是一個「缺點」。這不是,它只是不同而已。它確實有其缺陷,但幾乎每種類型的系統都是如此。

變量可以是任何類型。它也可以是一個對象。您可以在需要時明確(手動)鍵入檢查。有用於函數參數的對象的實際類型提示的語法糖。你可以使用鴨子類型來充分利用動態類型和對象。或者你可以不使用任何。它工作正常。

PHP5是否具有純面向對象的功能?

定義「純」。 PHP有對象。 PHP是而不是一種面向對象的語言。對於這個問題,肯定不是一個「純粹的」。 PHP的OOP感覺相當狂奔(它就是這樣),但它可以在不殺死小貓的情況下完成工作。

+0

鬆散地輸入也意味着不安全 – ruki 2011-03-07 10:39:07

+0

@ruki關於什麼? *類型安全性*與動態或強大的打字無關。 *應用程序安全性*與程序員知道自己在做什麼的程度更低。你似乎來自強大/靜態類型的語言,並感覺不安全的動態類型系統工作。這就是它的方式,它是*不同*,就是這樣。 – deceze 2011-03-07 10:59:10

+0

對不起,我完全不同意你的看法。強迫程序員在類型上小心謹慎,避免大量的錯誤和錯誤。還有什麼可以要求? – ruki 2011-03-07 11:15:30