PHP从零开始--错误处理函数

一、错误处理

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和anum指向同一块数据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

以封装格式,从一个数组中查询其某个单元是否存在,之后对其加红颜色显示。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四单元博客总结——暨OO课程总结

第四单元博客总结——暨OO课程总结 第四单元架构设计 第一次UML作业 简单陈述 第一次作业较为简单,只需要实现查询功能,并在查询的同时考虑到性能问题,即我简单的将每一次查询的结果以及递归的上层结果都存储下来,使用一个Boolean…

两列布局:6种方法

面试过程中总会文档两列布局&#xff0c;左边等宽&#xff0c;右边自适应几种方法&#xff1f;以下提供6种为君解忧 <div id"wrap"><div id"left"></div><div id"right"></div> </div>需求就是左侧定宽&…

PHP从零开始--数据库

文章目录一、 数据库简介1.1概念1.2命令行操作1.3连接数据库1.4配置环境变量二、 数据库的相关操作2.1显示所有仓库2.2创建仓库2.3删除仓库2.4切换仓库三、 数据表的相关操作3.1概念3.2显示所有的数据表3.3创建数据表3.2修改字段名3.3查看表结构3.4添加字段3.5删除字段3.6更改数…

常用SQL语句

将记录的某一字段值设置为空&#xff08;null&#xff09;UPDATE 表名 SET 字段名NULL WHERE 条件字段名123; 更新整列为某个值UPDATE 表名 SET 字段名NULL 转载于:https://www.cnblogs.com/zhcBlog/p/10254066.html

如何下载js类库

https://bower.io/ 这个已经淘汰 https://learn.jquery.com/jquery-ui/environments/bower/ Web sites are made of lots of things — frameworks, libraries, assets, and utilities. Bower manages all these things for you. Keeping track of all these packages and mak…

Python 常用系统模块整理

Python中的常用的系统模块中部分函数等的整理 random: 随机数sys: 系统相关os: 系统相关的subprocess: 执行新的进程multiprocessing: 进程相关threading: 线程相关pickle: 将对象转换成二进制文件time: 时间datetime: 基本的日期和时间类型timeit: 准确测量小段代码的执行时间…

PHP从零开始--字段修饰符数据操作SQL语言

文章目录一、 字段修饰符1.1主键1.2自动增长1.3非空1.4默认值1.5外键二、 对数据的操作2.1增加数据2.2删除数据2.3更新数据2.4查询数据2.4.1查询所有的数据2.4.2查询指定字段2.4.3去除重复字段2.4.4where表达式详解2.4.5分组查询2.4.6排序三、 SQL语言3.1DML3.2DDL3.3DCL一、 字…

scrapy爬虫框架windows下的安装问题

windows操作系统python版本是3.6.0通过Anaconda命令conda install scrapy安装scrapy,安装过程中没有问题。然后在命令行输入命令准备新建项目时&#xff0c;输入 scrapy startproject firstscrapy时出现了from cryptography.hazmat.bindings._openssl import ffi, libImportErr…

charles使用说明(基于mac)

1. Charles简介 1.1 Charles 需要java的运行环境支持&#xff0c;支持Windows、Mac&#xff1b;Fiddler不支持Mac。故Charles是在Mac下常用的网络封包截取工具。 1.2 Charles原理&#xff1a;通过将自己设置成系统的网络访问代理服务器&#xff0c;使得所有的网络访问请求都通过…

看完就懂的连表查询

文章目录一、表与表之间的关系1.1一对一1.2一对多1.3多对多二、 连表查询2.1概念2.2笛卡尔积2.3内连接2.4外连接2.4.1左外连接2.4.2右外连接2.4.3全连接2.4.4navicat导入导成sql语句2.4.5练习三、 子查询3.1概念3.2练习3.2.1查询工资最高的员工所有信息3.2.2查询工资比7654工资…

jpa

Transactionalpublic void testPerson() {try {Person person1 personDao.findById(1);person1.setAddress("天津");} catch (Exception e) {e.printStackTrace();}} service就这样一个方法&#xff0c;数据库中数据也会进行更新 将查询出来的数据对象赋值,然后不执…

影视感悟专题---1、B站-魔兽世界代理及其它乱七八糟

影视感悟专题---1、B站-魔兽世界代理及其它乱七八糟 一、总结 一句话总结&#xff1a; 看过的东西都可以学下&#xff0c;这样既可以学习那些东西&#xff0c;都是对自己生活学习有帮助的&#xff0c;还可以弥补自己每天学的东西的不够 1、《美丽心灵》中的博弈论共赢理论指的啥…

三分钟掌握PHP操作数据库

这里写自定义目录标题一、 操作数据库&#xff08;mysql&#xff09;的工具1.1命令行工具1.2navicat界面化工具1.3phpAdmin界面化工具二、 表单传值2.1文本框和文本域传值2.2单选框传值2.4下拉菜单传值三、 php连接数据库3.1连接方式介绍3.2mysqli基础步骤3.2.1创建连接3.2.2选…

go语言之进阶篇主协程先退出导致子协程没来得及调用

1、主协程先退出导致子协程没来得及调用 示例&#xff1a; package mainimport ("fmt""time" )//主协程退出了&#xff0c;其它子协程也要跟着退出 func main() {go func() {i : 0for {ifmt.Println("子协程 i ", i)time.Sleep(time.Second)}}(…

Actor模型(分布式编程)

Actor的目的是为了解决分布式编程中的一系列问题。所有消息都是异步交付的&#xff0c;因此将消息发送方与接收方分开&#xff0c;正是由于这种分离&#xff0c;导致actor系统具有内在的并发性&#xff1a;可以不受限制地并行执行任何拥有输入消息的 actor。用Actor写的程序可以…

看完就会的文件编程

文章目录文件编程1.1文件操作函数1.1.1file()函数1.1.2fopen fgets fclose1.2.1读取模式1.2.2写入内容&#xff08;开头&#xff09;1.2.3写入内容&#xff08;追加&#xff09;1.1.3file_get_contents1.1.4文件路径相关函数1.1.5file_exists1.1.6feof1.1.7copy()1.1.8set_incl…

Redis主从同步

主从同步原理 1. 从服务器向主服务器发送 SYNC 命令。2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令&#xff0c;创建一个 RDB 文件&#xff0c;并使用缓冲区记录接下来执行的所有写命令。3. 当主服务器执行完 BGSAVE 命令时&#xff0c;它会向从服务器发送 RDB 文件&#xff…

BigDecimal转String,int,double及简单操作运算、方法

---恢复内容开始---1.字符型数据&#xff1a;char\varchar\text这几种数据类型都是用来装字符串的char 固定长度存储数据varcahr 按变长存储数据text 当你需要存储非常大量的字符串时使用nchar、nvarchar、ntext这几个也是存储字符串的&#xff0c;与上面的对应相同。唯一不同的…

一文吃透PHP和HTML的嵌套写法

1.1全部php生成结构 1.2html中嵌套php 总结如下&#xff1a; html和php混写规则&#xff1a; php代码必须包在<?php ?>html中写php也是同理&#xff0c;但是有值输出必须加上echo 1.3博客项目 1.3.1前后台 前台主要是做数据展示的&#xff0c;所有的用户通过访问域…

hello.cpp 第一个C++程序(本博客没有特指都是以QT测试)

操作步骤&#xff1a;1.文件->新建文件或项目(N)->New File or Project->Qt Console Application->Choose->“名称”中输入工程名称->“创建路径”中输入保存位置->下一步->选择“工具包”->下一步->完成。 1.新标准 1 #include <iostream>…