這行代碼是創建一個拇指的對象,但有警告在PHP 5.3.x重寫代碼棄用
「分配參照新的返回值已棄用」
if (FALSE === ($thumb =& new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))) {
如何重寫它沒有任何警告?
THX
這行代碼是創建一個拇指的對象,但有警告在PHP 5.3.x重寫代碼棄用
「分配參照新的返回值已棄用」
if (FALSE === ($thumb =& new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))) {
如何重寫它沒有任何警告?
THX
在PHP 5.3.x,你不需要指定&
,找到你的答案在這裏: http://thinkinglemur.com/index.php/2009/07/assigning-the-return-value-of-new-by-reference-is-deprecated/
所以你可以使用這個:
(FALSE === ($thumb = new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))) {
刪除&字符引用已經不再需要。默認情況下它已通過引用傳遞。
if(false === ($thumb = new thumbnail_party(500, 500, '#FFFFFF', 'jpg', CACHE_PATH))){
// ...
}
但是,new
運營商絕不會導致false
,使支票在很大程度上是沒有意義的。
如果thumbnail_party
是一個類你有控制權,可以考慮從構造函數而不是拋出異常:
try{
$thumb = new thumbnail_part(/* ... */);
}catch(Exception $exception){
// failed to create $thumb
}
吹毛求疵:http://docs.php.net/language.oop5.references:「其中一個關鍵點經常提到的PHP 5 OOP是「對象通過默認引用傳遞」。這不完全正確。「 – VolkerK