何时使用@,以及声明变量的不同方式


When to use @, and different ways to declare variables?

我正在学习面向对象的php。我遇到了一些我不完全理解的代码。此代码在一个类中。

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

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

有人能解释一下@的用法吗。

2)此外,脚本似乎以我不习惯的方式($var方式)声明变量。

例如:

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

$ext不是在使用此代码之前声明的,而是在使用之后声明的。这会在对象中创建$ext变量吗?

谢谢大家!!

@将抑制错误,这样该表达式就不会显示错误。

http://php.net/manual/en/language.operators.errorcontrol.php

@是php的错误抑制运算符,您永远不应该使用它

你应该处理错误,而不是忽略,优点是你会得到很长的通知,这有助于调试太

最坏的情况如下手册所述

目前,"@"错误控制运算符前缀甚至会禁用将终止脚本执行的关键错误的错误报告。除其他外,这意味着,如果您使用"@"来抑制某个函数的错误,而该函数不可用或输入错误,则脚本将立即终止,并且没有说明原因。

@表示"调用此函数时禁止警告"。