一、错误处理
1.1错误种类
1.1.1Notices
比如没有定义变量确使用了会报notice错误,只是提醒注意,不影响后续代码执行
1.1.2Warnings
这是警告错误,比如include引入一个并不存在的文件,不影响后续代码执行
1.1.3Fatal Error
这是致命错误,影响后续代码执行,比如require一个并不存在的文件,或者使用未定义的函数等等
1.2屏蔽错误
1.2.1修改php.ini文件
这种方式会对当前项目下的所有php文件都起作用
我们点击其他选项菜单,选择php.ini文件
然后我们按ctrl+f搜索display_errors
修改完以后要保存php.ini文件,注意一定要重启phpstudy
1.2.2设置当前php文件
如果需要对当前的php文件设置错误显示或者关闭,可以设置如下:
我们的php.ini是关闭所有的错误的,当前文件是打开错误提示的,所以对当前文件设置是否显示错误的优先级要高些。
1.3错误级别
E_NOTICE 这是通知错误级别
E_WARNING 这是警告错误级别
E_ERROR 这是致命错误级别
注意测试下面的时候把php.ini的display_error=’On’
1.3.1只显示通知错误
1.3.2只显示警告错误
1.3.3显示警告错误或者致命错误
1.3.4显示除了某错误以外的其他错误
显示除了通知以外的其他错误
二、函数
2.1概念
函数可以重复执行的代码块。函数的特点是不调用不执行。函数调用是用函数名()
语法:(声明函数)
function 函数名(形参1,形参2…){重复执行的代码块
}
函数名(实参1,实参2)
还有下面的写法:(可变函数)
2.2return
return有两个作用:
1、 是把函数运算的结果返回出去,比如上面的函数内部是经过了一系列复杂的逻辑判断,最终我们想拿到图片地址,所以用return把地址返回出去,后面调用函数的时候可以拿到这个地址。
2、 我们上面函数内部写了return以后,后续的任何代码都不会执行,因为return还有终止代码运行的作用。
2.3默认值
备注:
函数参数可以设置默认值,但是必须大写(以常理的形式),如果设置了默认值,不传第二个参数就是以默认值计算,如果传递了就按传递的值计算。
2.4值传递
如果函数的参数是以变量的形式传递的 默认是值传递 内部变量$a
变化并不会影响外部变量$num.
2.4引用传递
下面的因为是引用传递 如果变量a和a和a和num指向同一块数据2,如果其中一个变化了,另一个也会跟着变化
原理如下:
2.5作用域
js的作用域如下:
函数外部定义的变量叫全局变量,函数内部定义的变量叫局部变量,js函数内部能获取外部的全局变量,外部获取不到内部的局部变量。
php的作用域如下:
函数外部定义的变量叫全局变量,函数内部定义的变量叫局部变量,但是不同的是php函数内部获取不到外部的全局变量,函数外部也拿不到内部的局部变量。
2.6函数内部获取全局变量的方式
2.6.1global
这种方法相当于是在函数内部创建了一个和外部全局变量同名的一个局部变量,然后就可以正常获取了.这两个变量是引用关系,内部变化了,外部也会跟着变化
2.6.2$GLOBALS
如果用上面的方法,$GLOBAS是一个超全局数组,它的键名就是自己定义的变量的名字,值就是自己定义变量的值
2.7练习
2.7.1练习1
写函数创建长度为10(形参)的数组,数组中的元素为递增的奇数,首项为1
2.7.2练习2
定义一个函数输出a(形参)行b(形参)列的表格
2.7.3练习3
以封装格式,求出班级平均分。
假设传入的格式如下:
$arr=array(array('语文'=>80, '数学'=>70, '英语'=>90),array('语文'=>80, '数学'=>70, '英语'=>90),array('语文'=>80, '数学'=>70, '英语'=>90)
);
答案如下:
2.7.4练习4
以封装形式,用户可以在当前购物车中选购5件商品,商品数量,商品价位不确定,请返回应付出的总价是多少?
商品一:价格:N元,购买数量:N件,小计:N元
商品二:价格:N元,购买数量:N件,小计:N元
商品三:价格:N元,购买数量:N件,小计:N元
总计:N元
答案:
$arr1=array(array('num'=>2, 'price'=>70),array('num'=>2, 'price'=>60),array('num'=>1, 'price'=>80)
);
2.7.5练习5
以封装格式,从一个数组中查询其某个单元是否存在,之后对其加红颜色显示。