2013-08-01 55 views
1

我正在學習面向對象的PHP。 我遇到了一些我不完全理解的代碼。 此代碼屬於一類。何時使用@和不同的方式來聲明變量?

1)使用@的代碼。 例如:

$this->image = @imagecreatefromgif($filename); 

有人可以解釋@的用法。

2) 此外,它看起來像腳本是以我不習慣的方式($ var方式)聲明變量。

例如:使用此代碼之前

$this->ext = $size['mime']; 

$分機未聲明,但後使用。這是否會在對象內創建一個$ ext變量?

謝謝你們!

+7

何時使用['@'](http://php.net/manual/en/language.operators.errorcontrol.php)?決不。任何依靠'@'來默默地忽略任何錯誤和警告的東西很可能設計得非常糟糕。 – rid

+1

儘量不要在同一篇帖子中提出無關的問題,它會讓事情混淆不清。對於第二個問題,請參閱http://stackoverflow.com/questions/10042736/class-works-without-declaring-variables?rq=1 – Barmar

+0

Barmar再次進行救援。謝謝! – seamus

回答

0

@手段 「調用此功能時禁止警告」。

1

@是PHP的錯誤抑制操作符,你不應該使用它

你應該處理錯誤而不是忽略和好處是,你會得到長期的通知這有利於調試過

而最壞的情況下會低於如manual

目前,「@」錯誤控制運算符前綴將甚至禁用關鍵錯誤的錯誤報告,以終止腳本執行。除此之外,這意味着如果您使用「@」來抑制某個函數的錯誤,並且它不可用或錯誤輸入,那麼腳本就會在那裏死去,而不會顯示原因。

+1

+1,用於阻止此操作員的使用。 – Bart

+0

@Bart Thankyou @操作員總是會出問題,如果我們不知道如何正確使用,最好不要使用 –