PHP中Too few arguments to function的问题及解决
作者:风神幻龙 发布时间:2023-06-04 21:15:55
PHP Too few arguments to function的解决
过去自定义函数的时候如果参数不足,则会抛出一个警告,但是在7.1开始,被提升为了错误异常。
function test($param){}
test();
这样调用test,在7.1便无法执行,此时我们需要给param赋一个默认值,即使是空值,这样,调用的时候就不会在报错,同时也提醒我们需要养成赋默认值的习惯。
PHP学习笔记-PHP报错处理
错误报告级别
PHP程序的错误发生一般归属于下列三个领域:
语法错误:语法错误最常见,并且也容易修复。如:代码中遗漏一个分号。这类错误会阻止脚本的执行。
运行时错误:这种错误一般不会阻止PHP脚本的执行,但会阻止当前要做的事情。输出一条错误,但php脚本继续执行
逻辑错误:这种错误最麻烦,既不阻止脚本执行,也不输出错误消息。
调整错误报告级别
display_errors: 是否开启PHP输出错误报告的功能
值为:On(默认输出错误报告)、 Off(屏蔽所有错误信息)
在PHP脚本中可调用ini_set( )函数,动态设置php.ini配置文件.
如:ini_set("display_errors","On"); //显示所有错误信息
error_reporting: 设置不同的错误报告级别。
error_reporting = E_ALL & ~E_NOTICE
-- 可以抛出任何非注意的错误,默认值
error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR
-- 只考虑致命的运行时错误、新解析错误和核心错误。
error_reporting = E_ALL & ~(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE)
-- 报告除用户导致的错误之外的所有错误。
在PHP脚本可以通过error_reporting( )函数动态设置错误报告级别。如:error_reporting(E_ALL);
自定义错误处理
自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理。
可以记下错误的信息,及时发现一些生产环境出现的问题
可以屏蔽错误。
可以控制错误的输出。
可以作为调试工具。
使用set_error_handler()函数来设置用户自定义错误处理。
1、错误日志
两种方式记录错误日志:
a.使用指定的文件记录错误报告日志
1)先配置php.ini:
error_reporting = E_ALL //将向PHP发送每个错误
display_errors=Off //不显示错误报告
log_errors=On //决定日志语句记录的位置
log_errors_max_log=1024 // 每个日志项的最大长度
error_log=G:/myerror.log //指定错误写进的文件
2)使用函数:在php文件中使用error_log()来记录日志,就可以将信息写入到myerror.log文件中
如:
b.错误日志记录到操作系统的日志里
【查看日志:如windows系统,通过右击“我的电脑”-> 选择管理选项->在系统工具菜单中选择事件查看器->在应用程序选项中即可看到日志了。】
1)先配置PHP.ini文件中
error_reporting = E_ALL //将向PHP发送每个错误
display_errors=Off //不显示错误报告
log_errors=On //决定日志语句记录的位置。
log_errors_max_log=1024 // 每个日志项的最大长度
error_log=syslog //指定到系统日志中。
2)使用四个函数来记录日志
define_syslog_variables();//为系统日志初始化配置
openlog(); //打开一个日志链接
syslog(); //发送一条日志记录
closelog(); //关闭日志链接
来源:https://blog.csdn.net/a7442358/article/details/107151887


猜你喜欢
- slice 可以用来获取数组片段,它返回新数组,不会修改原数组。除了正常用法,slice 经常用来将 array-like 对象转换为 tr
- 在这篇文章(不敢妄称教程,最多称之为学习笔记)里,我会从头开始实现客户端模板的效果。不过你不要期望能够在这里找到可以直接拿去使用直接复用灵活
- 并发安全和锁有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。类比现实生活中
- 为了方便各位朋友,本文收集了一些对Web开发人员非常有用的手册,记得推荐一下哦。HTML 速查手册HTML/XTML in one page
- 一.图像几何变换图像几何变换不改变图像的像素值,在图像平面上进行像素变换。适当的几何变换可以最大程度地消除由于成像角度、透视关系乃至镜头自身
- 存储过程 in参数 的使用IN参数只用来向过程传递信息,为默认值。-- 存储过程中 in 参数的 使用DELIMITER ;; CREATE
- 1.找到缺失值导入数据集df=pd.read_csv("nba.csv")df.head(10)替换异常值(数据集中异常
- 题记:毕业一年多天天coding,好久没写paper了。在这动荡的日子里,也希望写点东西让自己静一静。恰好前段时间用python做了一点时间
- 目录结构:testtest/index.phptest/test_zip.ziptest/test_zip<span style=&q
- 目录1.简介2.list2.1数据结构2.2插入元素3.ring3.1数据结构4.heap4.1数据结构1.简介Container — 容器
- 前话最近跟着廖雪峰的教程学到 模块 这一节。关于如何自定义一个模块,如果大家不懂的话先来看看基本的介绍:模块在计算机程序的开发过程中,随着程
- 今天来说一下,有些刚刚接触python的朋友,在使用pip install安装python 第三方库的过程中会出现网速很慢,或者是安装下载到
- 这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割
- 写在前面的话:此篇还是asp相关的,相信玩ASP的都有这个感觉,当数据有5万多条时-------just like音乐网,要调用最新的10条
- 效果展示效果展示素材展示一个为视频,另一个为像素大小不小于视频的封面。实现过程调用已启用的浏览器通过调用已启用的浏览器,可以实现直接跳过每次
- 基于smtplib包制作而成,但在实践中发现一个不知道算不算是smtplib留的一个坑,在网络断开的情况下发送邮件时会抛出一个socket.
- 卸载MySQL1、在控制面板,卸载MySQL的所有组件控制面板——》所有控制面板项——》程序和功能,卸载所有和MySQL有关的程序2、找到你
- 用js封装一些常用的jquery方法 记录一下hasClass:判断是否有classfunction hasClass(ele, cls)
- 代码如下Control:from django.conf.urls import patterns, include, urlfrom dj