我想知道在我们使用它之前@是什么意思包括或需要在PHP?
如 :
@include('block.php');
Run Code Online (Sandbox Code Playgroud)
也许这是一个菜鸟问题,但我需要知道它们呢?!
很抱歉
给我一个很好的理由
if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...
Run Code Online (Sandbox Code Playgroud)
代替这个
if( @$_GET['key'] === '123' )
{...
Run Code Online (Sandbox Code Playgroud)
我要的是这种非常具体的代码案例,而不是一般情况!
不受欢迎的原因如下:
@会使应用程序减慢几纳秒,因为无论如何都会产生错误(即使它被抑制了)。 ”我更喜欢较慢的代码,但可读性更好。@习惯是坏习惯。 ”一般而言,这可能是正确的,但是在这种情况下,我并不相信(而且,坏习惯可能取决于具体情况,请参考PHP手册中的函数,如fopen建议@在某些情况下使用,请参见Errors / http://www.php.net/manual/en/function.fopen.php上的异常)我当前的php.ini文件设置为报告除弃用和严格标准以外的所有错误,如下所示:
error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)
使用此设置的原因是我们迫切需要在托管我们网站的Linux服务器上执行PHP升级; 问题是,已弃用的功能和严格的标准建议将很快填满170多个网站的错误日志文件.这些错误主要是由于函数没有声明为静态等等.最终我们将通过所有站点并修复这些问题,但与此同时我们需要抑制错误.
我在本地测试环境中遇到的问题(运行我们希望升级到的PHP版本 - 5.4.3)是错误仍然显示以下打印之前:
SCREAM: Error suppression ignored for
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我深入了解为什么忽略错误抑制以及如何正确地抑制错误?
提前致谢.
我正在使用PHP类连接到数据库.我无法解决问题 - 请帮我解决这个问题.
我有一个功能:
function getCampus($cm_id) //returns campus name
{
$this->query = "select cm_name from campus where cm_id = ".$cm_id.";";
$rd = $this->executeQuery();
@$data = $rd->fetch_assoc();
}
Run Code Online (Sandbox Code Playgroud)
当我@从中移除时 @$data,它不起作用.请帮帮我:解释一下替代方式是什么.谢谢.
我有一个简单的脚本来检查用户上传了多少文件:
$sql = "SELECT * from $username where file IS NOT NULL";
$result = mysql_query($sql);
$count=mysql_num_rows($result);
Run Code Online (Sandbox Code Playgroud)
如果表$ username没有任何文件不为null的行,则会吐出:
"警告:mysql_num_rows():提供的参数不是......中的有效MySQL结果资源"
我该怎么做才能避免这种情况?是否有一种简单的方法可以简单地禁止显示此错误消息?或者一个简单的"if"语句,可以阻止SQL查询首先发生?
我正在尝试检测在从命令行运行的脚本中是否使用 PHP 安装了curl。我尝试了以下方法:
if(@function_exists('curl_version')){
...
}
Run Code Online (Sandbox Code Playgroud)
和
error_reporting(E_ERROR);
ini_set('display_errors', '0');
if(is_callable('curl_init')){
...
}
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下我都会收到以下消息:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20121212/curl.so' - /usr/local/lib/php/extensions/no-debug-zts-20121212/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
我更愿意隐藏错误消息,但似乎 @ 和 error_reporting 不起作用。有其他方法来抑制此消息吗?
我有一个鲁莽地编写的代码(由以前的 ofc 开发人员编写),并且在整个地方都大量使用了错误抑制运算符“@”。现在我必须调试一个错误,这证明它是一个真正的 PITA。
我已经尝试过像设置这样的常规操作error_reporting,display_errors但仍然尊重错误抑制(也许这就是它应该的样子)。
我也考虑过使用搜索和替换,regex但我将其保留为最后的手段。
现在我的问题是,有没有办法可以覆盖错误抑制运算符?