2021年九月份学习了关于PHP相关的知识。

总结php相关的基础知识

1.php注释:
  • //单行注释
  • #单行注释
  • /* */多行注释
 
2.php基本语法规则:
  • 明白PHP脚本在服务器上执行,然后将纯HTML结果发送回浏览器
  • PHP 脚本可以放在文档中的任何位置,PHP脚本以 <?php 开始
  • PHP文件的默认文件扩展名是 ".php"
  • PHP中的每个代码行都必须以分号结束,分号是一种分隔符,用于把指令集区分开来
 
3.php基本输出方式
  • echo:输出
  • print:输出,输出成功返回1
  • print_r():输出数组
  • var_dump():输出数据的详细信息,带有数据类型和数据长度
 
4.变量的定义规则
  • 必须以$开头
  • 不能以数字开头,字母下划线
  • 不能含有空格
  • 严格区分大小写
  • 见名识意,采用驼峰式命名

 

5.进制转换(要记住单词):
  • 十进制:dec
  • 二进制:bin
  • 八进制:oct
  • 十六进制:hex
例:
echo decbin(123),'<br>';   //十进制转二进制

 

6.php数据类型:
  • 基本数据类型:string(单引号的解析速度比双引号快)、integer、float、boolean(用var_dump()输出)
  • 复合型:array(数组)、object(对象)
  • 特殊性:null(空)、resource(资源)

 

7.数据类型的转换:(掌握的不是很熟练)
  • 强制转换:

    (数据类型)数据

  • 其他类型和布尔型之间的转换: 
    规则:0、空为假,非0非空为真

var_dump((bool)'abc');//bool(true)  

 

8.获取时间

  date('Y-m-d H:i:s')

(年 月 日 小时 分钟 秒)
 
9.php中也有三大结构:顺序结构、分支结构、循环结构,其中的语法和用法与其他语言相同,可能只是在书写结构上有些差异。
其中要提到的一个循环函数是foreach,他在循环遍历数组上有很大的用处。(个人是非常喜欢的)
//语法一
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数据库的操作使用:(在编写语句时一定要注意单词的拼写、去都是英文字符、语句最后的分号)

  1. 进入MySQL数据库:D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysql -uroot -proot -h127.0.0.1 -P3306
  2. 退出数据库:quit或exit或\q
  3. 库的操作:
    1. 创建数据库:create database student;
    2. 展示所有数据库:showdatabases;
    3. 删除数据库(慎用!):drop databasestudent;
    4. 选择/切换/使用数据库:usestudent;
  4. 表的操作:
    1. 创建表:create table stu();
    2. 删除表:drop table stu;
    3. 展示表:show tables;
    4. 查看表结构:desc stu;
    5. 复制表:create table newStu select name from stu;或create tablenewStulike stu;
    6. 修改表名:alter table stu rename to newStu;
    7. 添加字段:alter table stu add sex varchar(10) after name;(添加在name之后)或alter table stu add sex varchar(10) name in first;(添加在name之前)
    8. 删除字段:alter table stu drop age;
    9. 修改字段名:alter table stu change name new_name;
    10. 修改字段属性:alter table stu modify name varchar(50);
    11.  修改引擎:alter table stu engine=引擎名;
    12. 移动:alter table stu rename to newStu;
  5. MySQL支持存储的数据类型:(常用)
    1. 整型:int
    2. 浮点型:float
    3. 小数(定点数):decimal(M,D)(M:总位数,D:小数点后的位数)(价钱)
    4. 字符型:char(定长),varchar(不定长)
    5. 枚举:enum(要加引号)(单选框,性别,状态)
    6. 集合:set(要加引号)(复选框)
    7. 日期时间型:datetime(日期时间),date(日期),time(时间)
  6. 其他常用操作:
    1. where:后面跟的是条件,在数据源中进行筛选
    2. having是在结果集上进行条件筛选(二次筛选)
    3. order by:排序
    4. group by:分组
    5. limite:限制(开始下标,长度)
    6. like:模糊查询(通配符:_:表示任意一个字符;%:表示任意字符)
    7. as:给字段取别名
    8. 聚合函数:sum求和,avg求平均值,max求最大值,min求最小值,count求记录数
    9. 子查询:(查询里面再查询)以子查询的查询结果作为父查询的查询条件
      用于两表查询=》就相当于两表联查(还是两表联查好用)
    10. 内连接查询:
      1. 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;
        (三表联查(往后累加格式就行))
      2. select * from goods,goods_cate where goods_cate.cate_id=goods.goods_cate;
    11. 外连接查询:
      1. 以左表为准:
        select * from goods left join goods_cate on goods.goods_cate=goods_cate.cate_id;
      2. 以有右为准:
        select * from goods right join goods_cate on goods.goods_cate=goods_cate.cate_id;
    12. 自然连接:(前提是两个表中的对应字段名相同)
      select * from stu natural join class natural join course;(多表连接直接在后面添加natural join 表名即可)
  7. 表数据的操作:
    1. 增加内容:insert into stu(字段) value(值),(值);
    2. 删除:delete from stu where (id=1);
    3. 修改:update stu set (age='20') where (id=6);
    4. 查找表格内容:select *(所有)[字段] from stu where(条件:age>25 && sex='男');
    5. 批量删除:delete from stu where id in (1,3,5);
    6. 排序 select * from stu order by age asc;(根据年龄升序)select * from stu order by birth desc;(根据出生日期降序)
    7. 模糊查询:select * from stu where name like '老%';
    8. 查询不重复信息:distinct

(知识不是很多,总结的比较早乱,后面还会补充!)

(也希望观看的大佬帮助我指出错误)

(不能把学完知识当成终点,学习是一辈子的事情,要不断的学习!)