[PHP] 报错和“@” - 工作

以下几点关于报错和@的关系理解

  • 在PHP中使用@加在某个语句前面,可以抑制错误在脚本的执行过程中输出到IO;
  • 如果在某个语句上使用了@,则可以将语句内的各种嵌套的脚本可能存在的报错都会被抑制住;
  • 如果脚本启用set_error_handler并且不处理使用@的报错,
    则可以通过error_reporting获取当前的报错级别对@进行过滤处理(添加了@后的error_reporting为0)
  • 如果脚本启用set_error_handler语句进行错误重定向,则不管是否有使用@错误都会进入handler进入处理;
<?php
///
set_error_handler(array('my_error_handler'), E_ALL);

/**
 * 自定义错误处理
 * // 被“@”抑制后语句在出错的情况下不进入这方法
 *
 大专栏  [PHP] 报错和“@” - 工作 * @param int $errNum 错误代码
 * @param string $errStr 错误内容
 * @param string $errFile 错误文件
 * @param int $errLine 错误文件行号
 */
function my_error_handler($errNum, $errStr, $errFile, $errLine)
{
	///
	if (! (error_reporting() & $errNum)
		|| in_array($errNum, array(E_NOTICE, E_STRICT, E_USER_NOTICE))
	)
		return;

	///

}

原文地址:https://www.cnblogs.com/lijianming180/p/12041526.html

时间: 2024-10-15 01:02:26

[PHP] 报错和“@” - 工作的相关文章

问题 php不支持worker工作模式的报错

php不支持worker工作模式的报错 [[email protected] ~]# service httpd stop [Wed Jun 14 16:25:23 2017] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.  Pre-configuration failed 已解决 [[email 

Android-解决Android Studio使用SVN报错:XXX不是工作副本(XXX is not working copy)

在Android Studio中,使用VCS -> Import into Version Control-> Import into Subversion 可以将Project中的某个Module上传至SVN服务器.但是,当Android Studio再次启动时就会报错:XXX不是工作副本(XXX is not working copy).这个错误的意思是,当前project下有若干文件不是从SVN上check out的.并且,在之前上传的Module中修改内容后也无法提交至SVN,提示&q

【工作经验】解决报错:SyntaxError: Unexpected token .

解决报错: SyntaxError: Unexpected token . 处理过程: 屏蔽全部新增改代码,问题不出现. 放开一部分,问题依然不出现. 直到把如下代码放开,报错出现,定位是这块的错误. var textDom.textContent=contentStr; 解决方案: 原来写代码时没注意,多了个var.删掉就好了.

10.24工作笔记——解决linux_jni编译报错问题

公司在用opus开源库,所以遇到了一些问题. 我将新下载的opus1.1替换掉老版本之后,单独编译opus没问题,可是编译相关的文件就会报错. 错误信息如下: g++ -Wall -fPIC -shared libusc_jni.o libusc.a ../api/libopus.a ../api/libspeex.a ../api/libamrnb.a ../api/libpcre.a -o libusc_jni.so -L. -lusc /usr/bin/ld: ../api/libopus

工作常见问题:安装php报错

php编译过程中报错:  PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled 解决: 建议直接忽略,在 make install时会自动安装 禁用的方法(强烈不建议) 在configure时添加参数  --without-pear --disable-phar 常见php报错 https://segmentfault.com/a/1190000006

15、MariaDB工作中遇到的一部分报错的解决方法

MariaDB报错解决方法 1)服务起不来或者加进不了集群 法1: rm -rf mysql.sock rm -rf galera.cache rm -rf mariadb.pid rm -rf /var/lock/subsys/mysql 法2: 把/etc/my.cnf/server.cn 把集群配置全部注释,启动单机服务,然后再关闭服务,把集群配置再加进去,再启动服务 注意:若不是加入不了集群问题,就不要把集群文件删了 2)Table '.\mysql\proc' is marked as

PHP报错:Call to undefined function bcmul()即php-bcmath模块未正常工作

PHP报错:Call to undefined function bcmul(),在网上查到 bc是Binary Calculator的缩写.bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale没有提供,就用bcscale的缺省值.这里大数直接用一个由0-9组成的string表示,计算结果返回的也是一个 string. b

工作记录,重新申请环节带来的报错问题

sql报错.ORA-01427: 单行子查询返回多个行 select * from ( select row_.*, rownum rownum_ from ( select ids "ids" , procinstid "procinstid" , businesskey "businesskey" , sysordertitle "sysordertitle" , sysordercreator "sysorde

mysql 报错 session halted的解决办法,实际工作中的结论。

写后台程序,发现执行到sql语句时就报错session halted,如下图: 也上网搜过蛮多方法,都不能解决我的问题.后来自己发现了症结所在,其实很简单:执行insert的语句没有包含not null的字段,导致报错.只需把not null 的字段设置默认值或者取消not null即可.