PHP学习
分享PHP方面的笔记、遇到的问题及解决方法
蛊殇
fighting and never give up
展开
-
PHP之SQL封装
1.1 SQL封装每个功能都要写SQL语句,我们可以封装一个万能的方法来操作所有的表1.1.1 生成insert语句<?php/** * Created by PhpStorm. * User: sankrua * Date: 2020/12/2 * Time: 17:29 */$table='products';//表名//插入的数据$data['proId']='111';$data['proname']='钢笔';$data['proprice']=120;//第一原创 2020-12-03 15:01:16 · 477 阅读 · 0 评论 -
PHP之命名空间
1.1 命名空间1.1.1 介绍在一个大的项目中,可能会遇到同名的类、函数、常量,为了区分这些元素,我们可以将这些元素分别存放到不同的命名空间中。1、命名空间就是包,用来存放项目中的类、函数、常量2、通过namespace关键字来声明命名空间1.1.2 声明命名空间<?php/** * Created by PhpStorm. * User: sankrua * Date: 2020/12/2 * Time: 8:51 */namespace China; //定义命名原创 2020-12-02 15:47:17 · 214 阅读 · 0 评论 -
PHP之设计模式
1.1 设计模式1.1.1 单例模式一个类只能有一个对象应用场景:多次请求数据库只需要一个连接对象实现:三私一公1、私有的静态属性用来保存对象的单例2、私有的构造方法用来阻止在类的外部实例化3、私有的__clone阻止在类的外部clone对象4、公有的静态方法用来获取对象的单例<?php/** * Created by PhpStorm. * User: sankrua * Date: 2020/12/1 * Time: 14:29 * 三私一公 */class DB原创 2020-12-02 08:28:58 · 142 阅读 · 0 评论 -
PHP值自动加载类与克隆
1.1自动加载类在项目开发中,因为一个文件中只能写一个类,并且在执行过程中会有很多的类参与,如果一个一个的加载很麻烦,所以就需要一个机制实现在PHP执行过程中自动加载需要的类1.1.1 书写类的规则1.一个文件中只能放一个类(必须)2.文件名和类名同名(必须)3.类文件以.class.php结尾(不是必须)1.1.2 手动加载类1、创建Goods.class.php页面<?php/** * Created by PhpStorm. * User: sankrua * Da原创 2020-12-01 14:25:25 · 133 阅读 · 0 评论 -
PHP之创建类、实例化对象、属性、方法、访问修饰符
在PHP中实现类和对象1.创建类语法:class 类名{ //属性 //方法 //常量}类是由属性、方法、常量组成的,也可以说类成员有:属性、方法、常量类名的命名规则:1.以字母、下划线开头,后面跟的是字母、数字、下划线2.不能用PHP关键字做类名3.类名不区分大小写(变量名区分,关键字、类名不区分大小写)4.类名用帕斯卡命名法(大驼峰 单词的首字母大写)2.对象实例化通过new关键字来实例化对象<?php/** * Created by PhpStorm.原创 2020-11-30 15:05:51 · 1709 阅读 · 0 评论 -
PHP之操作数据库
1.1操作数据1.1.1数据库操作语句通过Mysqli_query()执行SQL语句增、删、改语句执行成功返回true,失败返回false<?php/** * Created by PhpStorm. * User: sankrua * Date: 2020/11/30 * Time: 8:48 *///1、连接数据库$link=mysqli_connect('localhost','root','root','data');//2、设置字符编码mysqli_set_cha原创 2020-11-30 09:46:23 · 325 阅读 · 0 评论 -
PHP之优化文件上传
优化文件上传更改文件名方法一:通过时间戳做文件名<?php$path='face.stu.png';//echo strrchr($path,'.');//从最后一个点开始截取,一直截取到最后echo time().rand(100,999).strrchr($path,'.');方法二:通过uniqid()实现$path='face.stu.png';echo uniqid().strrchr($path,'.'),'<br>';//生成唯一的IDecho uniq原创 2020-11-27 14:38:18 · 216 阅读 · 0 评论 -
PHP之文件操作
文件操作1、将字符串写入文件<?php$str="床前明月光,\r\n疑是地上霜。\r\n举头望明月,\r\n低头思故乡。";file_put_contents('./test.txt',$str);//将字符串写到文本中小结:1)所有的"写"操作都是清空重写2)在文本中换行是\r\n\r:回车 光标移动到当前行的最前面\n:换行 将光标下移动一行按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行3)\r\n是特殊字符,必须放在双引号内2、将整个原创 2020-11-26 16:29:35 · 1006 阅读 · 0 评论 -
PHP之文件夹编程
文件夹编程文件夹操作1、创建文件夹【mkdir(路径,权限,是否递归创建)】mkdir:创建directory:目录,文件夹<?php//1、创建目录//mkdir('./aa'); //创建aa文件夹//mkdir('./aa/bb'); //在aa目录下创建bb(aa目录必须存在)mkdir('./aa/bb/cc/dd',0777,true);//递归创建小结:1)0777表示是文件夹的权限。2)true表示递归创建,默认是false2、删除文件夹【rmdir()】原创 2020-11-26 14:39:14 · 328 阅读 · 0 评论 -
PHP的错误处理
错误处理错误的级别1.notice:提示2.warning:警告3.error:致命错误notice和warning报错后继续执行,error报错后停止执行错误的提示方法方法一:显示在浏览器上方法二:记录在日志中与错误处理有关的配置在php.ini中1.error_reporting = E_ALL:报告所有的错误2.display_errors = On:将错误显示在浏览器上3.log_errors = On: 将错误记录在日志中4.error_log = '地址':错误日原创 2020-11-25 17:13:38 · 156 阅读 · 0 评论 -
PHP之包含文件
包含文件包含文件的方式1、require:包含多次2、include:包含多次3、require_once:包含一次4、include_once:包含一次小结:1、require遇到错误抛出error类别的错误,停止执行2、include遇到错误抛出warning类型的错误,继续执行3、require_once、include_once只能包含一次4、HTML类型的包含页面中存在PHP代码,如果包含到PHP中是可以被执行的5、包含文件相当于把包含文件中的代码拷贝到主文件中执行,魔术常量原创 2020-11-25 16:05:12 · 239 阅读 · 0 评论 -
PHP之递归
递归函数内部自己调用自己递归有两个元素,一个是递归点(从什么地方递归),第二个是递归出口function printer($num){ echo $num.' '; if ($num == 1)//递归出口 return; printer($num-1);//递归点}printer(9);//9 8 7 6 5 4 3 2 1function cal($num){ if ($num == 1) return 1;原创 2020-11-25 15:37:01 · 118 阅读 · 0 评论 -
PHP的作用域
作用域1、全局变量:在函数外面2、局部变量:在函数里面,默认情况下,函数内部是不会去访问函数外部的变量3、超全局变量:可以在函数内部和函数外部访问<?php$num=10;function fun(){ echo $num; //Notice:Undefined variable: num 函数内部默认不能访问函数外部的值}fun();<?phpfunction fun(){ $_GET['num']=10; //将值付给超全局变量}fun();ech原创 2020-11-25 14:06:33 · 213 阅读 · 0 评论 -
PHP参数定义
参数默认值1、在定义函数的时候给形参赋值就是参数的默认值function fun($name,$addr='地址不详'){//参数的默认值 echo '姓名:'.$name.'<br>'; echo '地址:'.$addr.'<hr>';}//测试fun('tom','北京');fun('berry');2、默认值必须是值,不能用变量代替$str='地址不详';function fun($name,$addr=$str){//错误,默认值可以使用原创 2020-11-24 16:07:17 · 825 阅读 · 1 评论 -
PHP第九章笔记-MySQL快速入门
一、数据库基本概念数据库:信息存储的仓库,包括一系列的关系措施!表:一个数据库中可以有若干张表(形式上你可以看出我们日常生活中建立的表)字段:表里面的信息会分若干个栏目来存,这些栏目,我们在数据库技术中叫"字段",栏目里面存的具体信息叫"字段值"记录:一条信息我们叫一条记录一个数据库管理系统中可以建立若干个数据库,每个数据库中又可以建立若干张表,每张表中可以有若干条记录二、MySQL支持的数据类型数值类型、日期类型、字符串类型1.数值类型 1)整数类型 tinyin原创 2020-10-21 16:40:54 · 147 阅读 · 0 评论 -
PHP第八章笔记-文件与目录操作
一、判断普通文件和目录1.is_file()//判断给定文件名是否为一个正常的文件2.is_dir()//判断给定文件名是否是一个目录二、文件的属性1.file_exists()//检查文件或目录是否存在2.filesize()//取得普通文件大小3.is_readable()//判断给定文件名是否可读4.is_writable()//判断给定的文件名是否可写5.filectime()//获取文件的创建时间6.filemtime()//获取文件的修改时间7.fileatime()//获原创 2020-10-20 13:53:37 · 107 阅读 · 0 评论 -
PHP第七章笔记-日期与时间
一、设置时区date_default_timezone_set('Asia/Shanghai');//设置时区二、获取当前Unix时间戳time()三、获取指定时间的Unix时间戳mktime()date_default_timezone_set('Asia/Shanghai');//设置时区$nowTime=time();$time1=mktime(0,0,0,10,1,2021);//取得一个日期的Unix时间戳echo '距离2021年国庆还有'.($time1-$nowTime原创 2020-10-19 14:28:10 · 104 阅读 · 0 评论 -
PHP第六章笔记-正则表达式
一、正则表达式的语法规则描述了一类字符串的特征,然后通过这个特征可以配合一些特定的函数,来完成对字符串更加复杂的一系列操作!普通字符和特殊字符组成的一个字符串二、定界符我们一般习惯使用正斜线"/"作为定界的字符,前后一致三、普通字符四、元字符\d 匹配任意一个十进制数字,等价于[0-9]\D 匹配任意一个除十进制数字以外字符,等价于[^0-9]\s 匹配任意一个空白字符,比如换页符、换行符、回车符、制表符、垂直制表符\S 匹配除空白字符以外的任何一个字符\w 匹配任意一个原创 2020-10-19 13:56:36 · 91 阅读 · 0 评论 -
PHP第一章笔记-基本语法
一、变量变量是用于临时(只有在我们的程序的执行过程中才存在)存储值(数据)的容器1.变量的声明声明:就是实现告知,通知!在使用变量之前要事先通知,事先声明一下!注意:在PHP程序里面,使用变量之前是不需要声明的!变量用于存储数字、文本字符串或者数组这些数据!$变量名=数据(值)=在数学里是’等于’的意思,在PHP程序语言里面,不是等于号,是’赋值操作符’2.变量的销毁unset($变量名称)$and1=1;unset($and1);//销毁$and1变量echo $and1;//提原创 2020-10-18 20:09:17 · 132 阅读 · 0 评论 -
PHP第五章笔记-字符串处理
一、去除空格或其他字符函数1.trim $str=' abc '; var_dump($str); var_dump(trim($str)); $str='abcabcdefac'; var_dump($str); var_dump(trim($str,'bac'));//如果要去除多个字符可以连着写二、大小写转换函数$str='test';var_dump($str);var_dump(strtoupper($str));var_d原创 2020-10-18 17:52:12 · 196 阅读 · 0 评论 -
PHP第四章笔记-函数
一、自定义函数function 函数名(形式参数1,形式参数2,...形式参数n){ //各种PHP代码... //... return 表达式;//也可以不返回,如果不写那么默认返回null}函数的调用: 函数的调用需要遵循定义函数的时候写的规则,一一对应,将具体的实际参数传给定义函数时候写的形式参数! 调用函数之后执行的过程是相对独立的,互不干扰,默认没有联系! 执行完毕返回调用的位置继续向下执行函数的返回值 返回给调用者,默认返回nul原创 2020-10-17 09:13:45 · 107 阅读 · 0 评论 -
PHP第三章笔记-数组
一、数组创建方法一、变量名称[索引值]=数据;变量名称[]=数据;//不写索引值默认是索引数组,从0开始方法二、变量名称=array(索引值=>数据,…);数据里面还可以放数组类型的数据,同一个数组中存储任何类型的数据多维数组:访问数值的方法变量名称[索引值][索引值]…三、数组的遍历遍历数组:每个都经历一遍的意思1)for循环用的比较少,因为有缺陷2)foreach语句来实现遍历数组的目的foreach(数组遍历 as 变量1){//每次循环执行的语句变量1代原创 2020-10-17 09:09:53 · 148 阅读 · 0 评论 -
PHP第二章笔记-流程控制
流程控制:对PHP程序执行的过程进行控制!PHP有哪些手段对程序过程进行控制!一、顺序执行自上而下的顺序执行,对这个执行过程没有控制!二、分支执行分支执行可以根据条件是否满足来选择执行某些代码,PHP的分支执行主要通过两种语句(if,switch)来实现!1.if语句注意:if语句的表达式所控制的代码,最好用花括号括起来,哪怕一条语句也用花括号括起来!根据实际需求,if语句可以嵌套1)单向条件if(表达式)语句1;表达式的值为true那么就执行语句1,否则就不执行!原创 2020-10-17 08:58:45 · 128 阅读 · 0 评论