PHP

PHP过滤器详解

PHP过滤器主要对用户上传的数据进行验证和清理,确保上传的数据完整安全。比如我们可以通过PHP过滤器验证邮箱、电话号码或者URL这些既定格式;为了防止XSS攻击,可以使用PHP过滤器去除JavaScript、HTML代码。PHP过滤器怎么用?我们可以通过PHP内置的过滤器函数来进行过滤操作,下面让我们通过一张表格总览PHP过滤器的核心函数:函数功能filter_var()使用指定的过滤器过滤单个变

PHP过滤器实战详解

上一节我们详细讲解了PHP中的过滤器,本节我们将从实际出发,看看PHP过滤器在实例中该如何运用。情景:准备一个表单提交页面(up.php),会提交用户的姓名、年龄、电话号码、qq邮箱,提交到处理页面(process.php),处理页面会进行数据过滤,将上传数据转义HTML、特殊字符,并安全地将用户信息进行展示:1. up.php:简单的表单提交功能,通过method="POST&quot

PHP异常详解

本节我们主要学习PHP中的异常。在PHP中,异常和错误是两个相关但不同的概念。异常是程序可以主动抛出和捕获的预期错误情况,通常用于处理业务逻辑中的异常状况。而错误(如语法错误、除以零等)通常是意外的运行问题。不过要注意,从PHP 7开始,很多传统的运行时错误(比如除以零)也会以Error异常的形式抛出,这让错误处理更加统一。”我们可以通过throw来抛出异常,通过try···catch···fin

PHP OOP继承详解

上一节我们详细介绍了PHP中的访问修饰符,本节我们将学习PHP类中的继承。1. 在PHP中,什么是类的继承?答:使用extends关键字,通过在子类的类声明中使用extends关键字,可以指定子类继承自哪个父类。比如:<?php/*PHP中类的继承*/classBase//父类{&nbsp

PHP OOP析构函数详解

上一节我们学习了PHP的OOP构造函数,本节我们将学习PHP的OOP析构函数。析构函数的作用是在对象被销毁时自动执行清理代码,主要用于释放对象占用的外部资源(如文件句柄、数据库连接等)。以下四种情况会触发PHP自动调用析构函数:1. 脚本执行结束时:当PHP脚本执行完毕,所有剩余的对象都会被销毁,它们的析构函数被自动调用。2. 对象超出作用域时:当对象在函数内部创建,函数结束时对象离开作用域,析构

PHP OOP访问关键字详解

在PHP类内,我们常常看到很多属性或方法被这三种访问关键字所修饰,它们分别是public、protected和private。那么这些访问关键字分别有什么作用呢?它们分别指定类内属性或方法的访问范围,让我们通过一张表格来总览一下:关键字类内部访问子类访问外部访问public√允许√ 允许√ 允许protected√ 允许√ 允许× 不允许private√ 允许× 不允许× 不允许简单说就是publ

PHP OOP类常量详解

本节我们将学习PHP中的类常量。1. 什么是类常量?类常量是在类中定义的不可变的值。与普通变量不同,类常量的值在定义后不能被修改,且在整个脚本执行期间保持不变。2. 为什么会有类常量?类内,对于一些固定数值,我们可以使用类常量来存储,以提高代码可读性和健壮性。3. 如何定义类常量?最常见的情况是使用const关键字来修饰类内属性:比如我们有一个Dotcpp用户类,我们可以通过const关键字来声明

PHP OOP构造函数详解

上一节我们学习了如何访问PHP中对象的属性和方法,本节我们将学习PHP中类的构造函数。对于PHP中的类来说,构造函数是一个特殊的方法,它的函数名是“__construct”(两个下划线)它的功能是在类创建后自动调用构造函数对其属性进行初始化。比如我们有一个Dotcpp用户类,属性有的昵称、签名、成绩以及等级,在没有进行初始赋值后,我们可以通过构造函数对其属性进行默认赋值。<?php&nbsp

PHP OOP命名空间(Namespace)详解

在PHP中,什么是命名空间?情景:大型项目往往会出现函数、变量、常量等元素重名现象,为了解决这些问题,我们要么就小心翼翼地遵守命名规范;要么就划分命名空间,通过引入不同空间的变量实现重名元素的引用。使用命名空间的好处在于它能有效避免了命名冲突、提高代码可读性。简单理解,命名空间是PHP中用来封装和组织代码的一种方式。1. 如何定义命名空间呢?我们可以使用namespace关键字来声明命名空间,比如

PHP OOP接口详解

什么是PHP接口?在PHP中,接口是一种特殊的抽象类,它定义了一个契约,规定实现类必须遵循的方法。与抽象类不同,接口中的所有方法都是抽象的(PHP 8.0后允许存在默认方法实现)。接口既然是特殊的抽象类,那就有特殊的写法,接口和抽象类的区别主要体现在:1. 接口不同于抽象类通过"abstract class"来声明,而是通过关键字“interface”来声明。2. 接口要求所有方法都具有publi