2021年九月份学习了关于PHP相关的知识。
总结php相关的基础知识
- //单行注释
- #单行注释
- /* */多行注释
- 明白PHP脚本在服务器上执行,然后将纯HTML结果发送回浏览器
- PHP 脚本可以放在文档中的任何位置,PHP脚本以 <?php 开始
- PHP文件的默认文件扩展名是 ".php"
- PHP中的每个代码行都必须以分号结束,分号是一种分隔符,用于把指令集区分开来
- echo:输出
- print:输出,输出成功返回1
- print_r():输出数组
- var_dump():输出数据的详细信息,带有数据类型和数据长度
- 必须以$开头
- 不能以数字开头,字母下划线
- 不能含有空格
- 严格区分大小写
- 见名识意,采用驼峰式命名
- 十进制:dec
- 二进制:bin
- 八进制:oct
- 十六进制:hex
echo decbin(123),'<br>'; //十进制转二进制
- 基本数据类型:string(单引号的解析速度比双引号快)、integer、float、boolean(用var_dump()输出)
- 复合型:array(数组)、object(对象)
- 特殊性:null(空)、resource(资源)
- 强制转换:
(数据类型)数据
- 其他类型和布尔型之间的转换:
var_dump((bool)'abc');//bool(true)
8.获取时间
date('Y-m-d H:i:s')
//语法一 foreach(数组 as 值){ } //语法二 foreach(数组 as 键=>值){ }
10.
-
字符串拼接:“.”
- die():终值之后的所有代码(常用)
-
upset():销毁变量(清空)
-
empty()函数:判断变量是否为空
-
isset()函数:检测变量是否被设置
- gettype()函数:用于获取变量的数据类型
- settype()函数:用于设置变量的类型
- @()取消警告
-
//定界符:能够解析变量,也能够输出html代码 echo <<<str str;
- '\':转义字符
11.常量的定义:
- 定义:define
- 定义过后就不可以再改变了
- defined()函数:用来检测常量是否被定义
-
变量与常量的区别:常量:一经定义不可改变,不需要$符,需要define定义,常量名必须是大写字母变量:可以改变,需要$符定义,变量名开头是$,要符合规范
12.对于字符串的处理:
- 用for循环输出字符串中的每一个字符。
- strlen():获取字符串的长度(其中每一个英文字符都是占1个字节,而一个汉字需要占3个字节,所以在获取中文字符串的长度时,我们需要用mb_strlen()函数)
- explorer()函数:按照指定分割符将字符串转化为数组。2个参数:(分割符,字符串)
- str_replace()函数:字符串的替换。3个参数:(被替换的字符,替换成的字符,字符串)
-
substr_replace()函数:字符串替换。4个参数:(字符串,替换成的字符串,开始的位置,替换的长度)
//案例
//手机号中间四位隐藏: function hide($str){ $resstr=substr_replace($str,'****',3,4); return $resstr; } echo hide(15065421607);
- printf()函数:格式化输出字符串。
$number=20000000; $city='上海'; //printf可以直接输出 printf("%s有%d多人",$city,$number);//占位符:%s字符串型,%d整形 //sprint需要用echo输出 echo sprintf("%s有%d多人",$city,$number);
- strpos()函数:查找字符串内指定的字符,返回第一次出现的位置。
- strrpos()函数:查找字符串内指定的字符,返回最后一次出现的位置。
- strstr()函数:查找字符串内指定的字符,返回该字符以及该字符以后的内容。
- substr()函数:字符串截取。
-
str_repeat()用于把指定字符重复n次。
-
trim()函数:用于去除字符串两端的空白。(前面有l为左,r为右)
-
strrev()函数:反转字符串。
-
strtolower()函数:把字符串转换为小写字母。
-
strtoupper()函数:把字符串转换为大写字母。
-
ucfirst()函数:把字符串中的首字符转换为大写。
-
ucwords()函数:把字符串中每个单词的首字符转换为大写。
(关于函数这东西还有很多,需要自己积累)
13.对数组的处理:
- 用foreach循环遍历数组。
-
implode()函数:按照指定连接符将数组转化为字符串。2个参数:(连接符,字符串)
- 追加:
- 数组名[索引名]
-
array_unshift()函数:在数组前添加
-
array_push()函数:在数组后添加
-
删除:
-
unset()函数:销毁变量
-
array_shift()函数:删除数组前的
-
array_pop()函数:删除数组后的
-
array_splice()函数:数组+下标
-
14.php对文件的操作:
- fopen()函数:用于在 PHP 中打开文件。
- fread()函数:读取打开的文件。
- fclose()函数:关闭打开的文件。
- fgets()函数:从打开的文件中返回一行。
- file_get_contents()函数:把整个文件读入一个字符串中。
- file_put_contents()函数:把一个字符串写入文件中。
- fwrite()函数:把一个字符串写入文件中。
$file = 'sites.txt'; $site = "\nGoogle"; // 向文件追加写入内容 // 使用 FILE_APPEND 标记,可以在文件末尾追加内容 // LOCK_EX 标记可以防止多人同时写入 file_put_contents($file, $site, FILE_APPEND | LOCK_EX);
15.php正则表达式:
-
preg_match('(正则表达式)','变量')
-
中文正则:"/^x{4e00}-\x{9fa5}{2,3}$/u":x表示十六进制,u表示代表unicode(utf-8)匹配
$res=preg_match("/^[\x{4e00}-\x{9fa5}]{2,3}$/u",$realname);
16.MySQL数据库的操作使用:(在编写语句时一定要注意单词的拼写、去都是英文字符、语句最后的分号)
-
进入MySQL数据库:D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysql -uroot -proot -h127.0.0.1 -P3306
-
退出数据库:quit或exit或\q
- 库的操作:
- 创建数据库:create database student;
-
展示所有数据库:showdatabases;
-
删除数据库(慎用!):drop databasestudent;
-
选择/切换/使用数据库:usestudent;
- 表的操作:
- 创建表:create table stu();
-
删除表:drop table stu;
-
展示表:show tables;
- 查看表结构:desc stu;
- 复制表:create table newStu select name from stu;或create tablenewStulike stu;
-
修改表名:alter table stu rename to newStu;
-
添加字段:alter table stu add sex varchar(10) after name;(添加在name之后)或alter table stu add sex varchar(10) name in first;(添加在name之前)
-
删除字段:alter table stu drop age;
-
修改字段名:alter table stu change name new_name;
-
修改字段属性:alter table stu modify name varchar(50);
-
修改引擎:alter table stu engine=引擎名;
-
移动:alter table stu rename to newStu;
- MySQL支持存储的数据类型:(常用)
- 整型:int
- 浮点型:float
- 小数(定点数):decimal(M,D)(M:总位数,D:小数点后的位数)(价钱)
- 字符型:char(定长),varchar(不定长)
- 枚举:enum(要加引号)(单选框,性别,状态)
- 集合:set(要加引号)(复选框)
- 日期时间型:datetime(日期时间),date(日期),time(时间)
- 其他常用操作:
- where:后面跟的是条件,在数据源中进行筛选
- having是在结果集上进行条件筛选(二次筛选)
- order by:排序
- group by:分组
- limite:限制(开始下标,长度)
- like:模糊查询(通配符:_:表示任意一个字符;%:表示任意字符)
- as:给字段取别名
- 聚合函数:sum求和,avg求平均值,max求最大值,min求最小值,count求记录数
-
子查询:(查询里面再查询)以子查询的查询结果作为父查询的查询条件用于两表查询=》就相当于两表联查(还是两表联查好用)
- 内连接查询:
-
select * from goods (inner) join goods_cate on goods.goods_cate=goods_cate.cate_id join goods_brand on goods.goods_brand=goods_brand.brand_id;(三表联查(往后累加格式就行))
-
select * from goods,goods_cate where goods_cate.cate_id=goods.goods_cate;
-
- 外连接查询:
- 以左表为准:
select * from goods left join goods_cate on goods.goods_cate=goods_cate.cate_id;
- 以有右为准:
select * from goods right join goods_cate on goods.goods_cate=goods_cate.cate_id;
- 以左表为准:
- 自然连接:(前提是两个表中的对应字段名相同)
select * from stu natural join class natural join course;(多表连接直接在后面添加natural join 表名即可)
- 表数据的操作:
- 增加内容:insert into stu(字段) value(值),(值);
- 删除:delete from stu where (id=1);
- 修改:update stu set (age='20') where (id=6);
- 查找表格内容:select *(所有)[字段] from stu where(条件:age>25 && sex='男');
- 批量删除:delete from stu where id in (1,3,5);
- 排序 select * from stu order by age asc;(根据年龄升序)select * from stu order by birth desc;(根据出生日期降序)
- 模糊查询:select * from stu where name like '老%';
- 查询不重复信息:distinct
(知识不是很多,总结的比较早乱,后面还会补充!)
(也希望观看的大佬帮助我指出错误)
(不能把学完知识当成终点,学习是一辈子的事情,要不断的学习!)