【问题标题】:When to use @, and different ways to declare variables? [duplicate]何时使用@,以及声明变量的不同方式? [复制]
【发布时间】:2013-08-02 17:44:34
【问题描述】:

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

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

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

谁能解释一下@的用途。

2) 而且看起来脚本正在以我不习惯的方式($var 方式)声明变量。

例如:

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

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

谢谢大家!!

【问题讨论】:

  • 何时使用@?绝不。任何依赖@ 默默地忽略任何错误和警告的东西很可能设计得很糟糕。
  • 尽量不要在同一篇文章中问无关的问题,这会混淆事物。第二个问题见stackoverflow.com/questions/10042736/…
  • Barmar 再次出手相救。谢谢!
  • 哇,谢谢。参考 - 这个符号在 PHP 中是什么意思?会是一个救生员。
  • 欢迎您...还有很多类似的 stackoverflow.com/questions/12769982/… 但您需要进行一些研究才能找到它们 :)

标签: php syntax error-suppression


【解决方案1】:

@ 将抑制错误,因此不会显示该表达式的错误。

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

【讨论】:

  • 并且请在阅读手册中的该页面时阅读警告
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    最坏的情况如下manual中所述

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

    【讨论】:

    • +1 表示不鼓励使用此运算符。
    • @BartThankyou,@运算符如果我们不知道如何正确使用总是会出问题,最好不要使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多