#作者:允砸儿
#日期:乙巳青蛇年 三月廿一
笔者今天将web后端语言PHP完结一下,后面还会写一个关于python的番外。
PHP函数
PHP函数它和笔者前面写的js函数有些许类似,都是封装的概念。将实现某一功能的代码块封装到一个结构中,实现代码复用。只要系统在内容中能够找到对应的函数,就可以执行。(函数的调用可以在函数定义之前)
1、有内置函数大约1000种
2、自定义的函数:声明+调用(形参和实参)
函数的定义
function函数名(参数){
#函数体
}
函数的使用
函数名(参数)
PHP函数准则:
函数的名称应该提示出它的功能。函数名称以字母或下划线开头(不能以数字开头)。
比如:
function abc(){
echo 'nihao';
}
abc();
PHP表单操作
表单是一个包含表单元素的区域。表单的作用是搜集不同类型的用户输入,然后将用户信息提交给服务器。在结合前端和后端的一些东西,判断用户对不对。
#注意;#不是谁想用就想用的,需要后端来核实,验证你前端输入过来的东西对不对。
它以数组方式接收,以数组方式处理,数组里面有很多元素。
PHPweb操作
用户提交数据通常是使用表单进行提交,也可以使用网址中的参数传递数据,这些数据通过HTTP请求的方式发送,使web服务器获取。
PHP提供了预定义的超全局变量,用来获取HTTP请求信息,这些变量的数据类型均为数组。
笔者举实例演示一下:#在这里笔者告诉朋友们一个技巧在PHP表单中用英文的!可以快速形成HTML语言。
接下来笔者用form做表单,PHP用$_post去接收.
1、接收数据,处理数据,返回结果
笔者网页演示一下;
2、判断用户是否点击按钮
笔者是用的if语句来判断,这里不用拘泥于一种
在这里面isset用来检查变量是否被设置为非空,变量是否被初始化
if (isset($_POST['submit']))
3、用三元运算符来判断user、password是否被拿值
$user = isset($_POST['user']) ? $_POST['user'] : null;
$password = isset($_POST['password']) ?$_POST['password'] : null;
4、 判断用户,密码是否正确
用函数function login把前几个组合在一起
网页演示:
PHP文件上传
PHP文件上传是web开发中常见的功能之一,它允许用户通过web表单将文件(如图片、文档、视频等)上传到服务器。
文件上传的基本路径
客户电脑 服务器电脑
文件夹保存本地图片 第一次请求:文件上传表单文件》
《第一次响应:提供文件上传表单
浏览器内容:
1、浏览器显示表单 第二次请求携带文件 操作系统保留 1、储存在临时文件
2、用户选择本地文件 2、php作为后端判断
3、用户点击上传 第二次响应告知结果 3、移动文件到指定目录
接下来笔者带大家了解一下文件上传需要的一些函数和数组的含义
1、在form表单标签里面我们需要一个新的属性enctype="multipart/form-data">
主要规范表单数据的编码方式。
2、在HTML语句中加入file
文件上传:<input type="file" name="upload"><br>
3、了解数组的含义
(1)Array ( [user] => [password] => [submit] => 提交 )这是一维数组
(2)Array ( [upload] => Array ( [name] => 颜色判断结果.png [type] => image/png [tmp_name] => C:\Users\17267\AppData\Local\Temp\php9778.tmp [error] => 0 [size] => 2831 ) )这是二维数组。
name:文件名字。type:文件类型。tmp_name:临时路径。error:错误代码,0代表成功。
size:文件大小
4、获取上传文件后缀名
$ext=substr(strrchr($name,'.'),1);
#通过函数结合拿到后缀名,函数可以结合,拿到字符串的一个属性。
5、生成一个随机文件名
echo rand().'.'.$ext;
用$file_name来封装rand
6、存储临时文件信息
用if语句创造一个文件夹,把权限提升到最高,在用一个函数去声明。我们将创造出的文件夹与随机文件名封装到一个函数中。最后趁着临时文件在的时候保存下来。
网页演示:
按照笔者思路来写,一套下来文件成功存储在tex1中。php文件上传很重要网安会在这里面寻找漏洞。
PHP面向对象
它是一种编程思维,面向对象是一种以对象(object)为中心的编程思想。面向对象编程更注重对问题的抽象和封装,通过将问题分解为一些列相互协作的对象来实现程序的功能。
php类和对象
类是抽象的概念,仅仅是模板。用来描述具有相同属性和方法的对象的集合。比如:人类。
对象是类的实例,是某一个具体的事物。比如:对象是实际的人张三李四王五。
用笔者老师教的一个实例向朋友们去解释这个事:
首先找一个温柔的女朋友
class类
1、找大学
2、浙江大学
3、浙江大学女性
4、浙江大学女性温柔的
对象、具体
5、new 类
6、浙江大学女性温柔的----英语老师
接下来笔者去创造一个对象:
他的名字是long简单的做一段自我介绍:
网页演示:
PHP魔术方法
定义:PHP魔术方法(Magic Methods)是一类特殊的方法,它们在PHP中具有特定的命名和功能,能够在特定情况下自动被调用。
命名规则:魔术方法通常以两个下划线( —_)开头,后跟方法名称,如_construct()、_destruct()等。
与普通方法的区别:与普通方法不同,魔术方法不需要显式调用,而是由PHP解释器在特定时机自动触发。
魔术方法有很多笔者在这里只介绍4种方法:
第一种魔术方法:
构造方法:
construct()是一个特殊的方法,当创建新对象时,该方法会自动被调用,用于初始化对象的状态或执行其他必要的操作。参数列表 construct()方法可以接受任意数量的参数,这些参数用于在创建对象时传递初始化数据。
使用示例:
在类中定义construct()方法,并在创建对象时传递参数来初始化对象的状态。#注意事项如果类中定义了construct()方法,则必须在创建对象时提供所需的参数,否则会导致错误。
第二种魔术方法:
析构方法:
定义与用途destruct()是另一个特殊的方法,当对象不再被引用或脚本执行结束时,该方法会自动被调用,用于执行清理操作,如释放资源、关闭数据库连接等。 参数列表 destruct()方法不接受任何参数。
使用实例:
在类中定义 destruct()方法,并在其中执行必要的清理操作。
在写后两种魔术方法的时候,笔者简单解释下什么是序列化,反序列化。反序列化就是将一个特别 大的高的东西切成小块运输。具体来说就是数组是大的东西,把它切成字符串小的东西。
第三种魔术方法:
__sleep()方法:
1,触发时机:当对象被序列化时自动调用。
2,功能描述:该方法可以清理对象,并返回一个包含所有应被序列化的属性名称的数组。如果该方法未返回任何内容,则 NULL 被序列化并产生一个 E WARNING级别的错误。
3,参数列表:此方法不接受任何参数。
4,返回值:返回一个包含所有需要被序列化的属性名称的数组。
使用实例:
public function __sleep(){echo '你是不是在外面偷偷使用序列化函数';return array('name');
}
第四种魔术方法:
_wakeup方法:
1、触发时机:当反序列化一个对象时自动调用。
2、功能描述:该方法可以重新建立数据库连接,或执行其它初始化操作。它不需要任何参数,也没有任何返回值。
3、如果在反序列化过程中,__wakeup()方法的执行抛出了一个异常,那么反序列化操作会失败,并抛出该异常。
function __wakeup(){echo '你是不是在外面偷偷使用反序列化函数吗?unserialize'; }
php后端内容已经完成了,内容有点多。最后希望大家可以一起进步,把知识学给自己,让自己变的更强。