有许多内置的PHP函数会生成通知或警告,提示您在发生问题时无法关闭,例如parse_ini_file和file_get_contents。一种常见的解决方案是使用@运算符禁止显示并通过error_get_last()函数获取警告信息:
$result = @file_get_contents($url);
if (false === $result) {
// inspect error_get_last() to find out what went wrong
}更好的方法是使用set_error_handler:
set_error_handler(function ($severity, $message, $file, $line) {
throw new \ErrorException($message, $severity, $severity, $file, $line);
});
$result = file_get_contents($url);
restore_error_handler();在这种情况下,我们注册我们自己的错误处理程序,该处理程序将每个通知,警告和错误转换为ErrorException,然后可以在其他地方捕获该错误。
但在php7以后官方会逐步统一万物皆异常,例如:
try {
$result = file_get_contents($url);
} catch (EngineException $e) {
// do something with $e
} 因项目需要需要统计用户无限下级计算分销佣金,计算每月分红,计算无限下级团队的业绩,需要先获得某个会员的无限下级成员。先看看数据库中的member表字段id username &...
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
当我想在一个进程中监听kill 和 kill -9命令报了这个错误。//监听kill pcntl_signal(SIGTERM, function () { posix_kill(0, SIGTERM); });...
将jsonp转为PHP数组和对象。/** * jsonp转数组|Jsonp转json * @param string $jsonp jsonp字符串 * @param bool $as...