2010-01-28 116 views
2

通常我創建一個新的對象invocating他的構造函數通常的方式:PHP構造函數調用語法

$instance= new Class(); 

最近,我讀了很多代碼的替代語法(不parentesys):

$instance= new Class; 

這兩種方法之間有很大差異還是它們是等價的?

我還沒有找到有關此主題的參考資料'至今。

+1

據我所知,除非你需要傳遞參數給你的構造函數,否則這兩個表達式都是相同的。糾正我,如果我錯了。 – 2010-01-28 00:45:57

+0

據我所知,我同意你的看法。不過,我想確定這是一個預期的功能。 – Eineki 2010-01-28 01:27:33

回答

5

沒有區別。

你說得很對,很難證明。 The Basics介紹了new關鍵字,但所有示例都有括號,並沒有提及它們的可選性。

編輯:從最好的,我能看到的是例子official documentation如:

// This will call B() as a constructor 
$b = new B; 
+0

正是我在尋找的東西。謝謝 – Eineki 2010-01-28 08:43:04

0

我不熟悉PHP,但後者可能調用默認的構造函數,而前者調用沒有參數的構造函數。

+0

不幸的是,PHP不支持多個構造函數。不錯,儘管。 :) – 2010-01-28 00:43:41

+1

回覆:沒有多個構造函數。誠然,您可以忽略它們,如果簽名中提供了默認值,則在撥打電話時它們將被替換。 – sfrench 2010-01-28 01:03:14