PHP基础知识整理

发布时间:2024年01月07日
  • PHP语言基础
    • PHP是嵌入式代码,需要标注php代码的标记,方便编译器识别
      • <?php 具体内容 ?> 标准标记
      • <? 具体内容 ?> 通过Short_open_tag开启
      • <% 具体内容 %> 通过Asp_tags开启
      • <script language = "php">具体内容</script>
    • 基本输出语法
      • Echo 标准输出,可输出多个语句,如echo 123,'abc',456;
      • Print 只能输出一个值:print 123;
      • Print_r() 函数,只能输出一个:print_r(123);
      • Var_dump() 函数,可输出多个并附带数据类型,如var_dump(123,456.'abc','wer');
      • 输出多个值时均用(逗号)‘,’隔开
      • <br/>/<br>/<br /> 换行符,html5都可用,具体看html解析器的版本
      • . (英文句号) 连接符
      • <hr/>/<hr> 分隔符,html5都可用,具体看html解析器的版本
    • 命名规则(变量和常量)
      • 1.字母、数字和下划线(_)
      • 2.数字不能开头
      • header("content-type:text/html;charset=utf-8"); 设置编码,用于设置文档的输出格式,解决中文乱码现象
      • 常量定义
        • Define (常量名,常量的值,true/false) Define('PAI','3.1415926') Define('PAI','3.1415926',true) 第三位是bool类型的值,用于判断常量名是否区分大小写 默认为false:区分大小写 true:不区分大小写
        • Const 变量名 = 值; 例如:const pi = 3.141592653589793 ;
        • 常量定义成功后是不能修改的
      • 常量名 功能描述
        • __FILE__ PHP程序文件名
        • __LINE__ PHP程序中的当前行号
        • PHP_VERSION PHP程序的版本,如“7.1.4”
        • PHP_OS 执行PHP解析器的操作系统名称,如“WINNT”
        • TRUE 该常量是一个真值(true)
        • FALSE 该常量是一个假值(false)
        • NULL 该常量是一个空值(null)
        • E_ERROR 该常量表示错误级别为致命错误
        • E_WARNING 该常量表示错误级别为警告
        • E_PARSE 该常量表示错误级别为语法解析错误
        • E_NOTICE 该常量表示错误级别为通知提醒
      • 变量定义
        • $x; 默认值为null
        • $x=1; 定义赋值,直接赋值
        • $y=$x; 等式赋值,y=1,复制x的值到y的存储地址
        • $z=&$x 引用赋值,z=1,复制x的地址给z,不额外分配存储地址;此时x和z共用一个存储地址
    • 数据类型
      • Integer 整型
      • boolean 布尔类型
      • string 字符串类型
      • NULL 空类型
      • array 数组类型
      • object 对象类型
      • Float/double 浮点型
    • 获取数据类型的函数
      • Gettype(检测数据) 识别数据的数据类型
      • Is_bool() 布尔值
      • Is_int() 整型
      • Is_float() 浮点型
      • Is_array() 数组
      • Is_object() 对象
      • Is_string() 字符串
      • Is_null() 空
      • Is_resource() 是否属于资源
      • Is_numeric() 数字/数字类型字符串
      • 返回值均为bool值 True/false
    • 类型转化
      • 默认类型转化(判断/输出过程中会自动进行类型转化)
      • 转换类型 示例 输出结果
        • 转换成布尔型
          • var_dump( 0 == false ); bool(true)
          • var_dump( 3.14 == false ); bool(false)
          • var_dump( 'abd' == false ); bool(false)
          • var_dump( NULL == false ); bool(true)
        • 转换成整型
          • var_dump( '888php' == 888 ); bool(true)
          • var_dump( 'php888' == 888 ); bool(false)
          • var_dump( true + 1 ); int(2)
        • 转换成字符串型
          • var_dump( 'true is' . true ); string(8) "true is1"
          • var_dump( '3' ); string(1) "3"
          • var_dump( '3.14' ); string(4) "3.14"
      • 强制类型转化(懂如何用就行)
        • Var_dump((int)'4.99') 输出结果为int(4);double--》int
    • 运算符
      • 算数运算符
        • 运算符 运算 范例 结果
        • + 加 5+5 10
        • - 减 6-4 2
        • * 乘 3*4 12
        • / 除 3/2 1.5
        • % 取模(即算术中的求余数) 5%7 5
        • ** 幂运算(PHP5.6新增) 3**4 81
        • ++ 加加(预递增,后递增) $x=10; echo ++$x; $y=10; echo $y++; 11 10
        • -- 减减 $z=5; echo --$z; $i=5; echo $i--; 4 5
        • . 连接、用在字符串 10.10 1010
      • 赋值运算符
        • 运算符 运算 范例 结果
        • = 赋值 $a=3;$b=2; $a=3;$b=2;
        • += 先加,后赋值 $a=3;$b=2;$a+=$b; $a=5;$b=2;
        • -= 减并赋值 $a=3;$b=2;$a-=$b; $a=1;$b=2;
        • *= 乘并赋值 $a=3;$b=2;$a*=$b; $a=6;$b=2;
        • /= 除并赋值 $a=3;$b=2;$a/=$b; $a=1.5;$b=2;
        • %= 模并赋值 $a=3;$b=2;$a%=$b; $a=1;$b=2;
        • .= 连接并赋值 $a='abc';$a.='def'; $a='abcdef';
        • **= 幂运算并赋值 $a=2; $a**= 5; $a=32;
      • 比较运算符
        • 运算符 运算 范例 结果
        • == 等于 $x == 4 false
        • != 不等于 $x != 4 true
        • <> 不等于 $x <> 4 true
        • === 全等(恒等于) $x === 5 true
        • !== 不全等(恒不等) $x !=='5' true
        • > 大于 $x > 5 false
        • >= 大于或等于 $x >= 5 true
        • < 小于 $x < 5 false
        • <= 小于或等于 $x <= 5 true
      • 逻辑运算符
        • 运算符 运算 范例 结果
        • && 与 $a && $b $a和$b都为true,结果为true,否则为false
        • || 或 $a || $b $a和$b中至少有一个为true,则结果为true,否则为false
        • ! 非 ! $a 若$a为false,结果为true,否则相反
        • xor 异或 $a xor $b $a和$b的值一个为true,一个为false时,结果为true,否则为false
        • and 与 $a and $b 与&&相同,但优先级较低
        • or 或 $a or $b 与||相同,但优先级较低
      • 位运算符
        • 运算符 运算 范例 结果
        • & 按位与 $a & $b $a和$b每一位进行“与”操作后的结果
        • | 按位或 $a | $b $a和$b每一位进行“或”操作后的结果
        • ~ 按位非 ~ $a $a的每一位进行“非”操作后的结果
        • ^ 按位异或 $a ^ $b $a和$b每一位进行“异或”操作后的结果
        • << 左移 $a << $b 将$a左移$b次(每一次移动都表示“乘以2”)
        • >> 右移 $a >> $b 将$a右移$b次(每一次移动都表示“除以2”)
    • 流程控制语句
      • 三目运算符 ?: 判断条件?操作1:操作2 条件为真执行1,条件为假执行2
      • If(判断条件){执行操作} Elseif(判断条件){} … Else{}
      • Switch(判断的变量){ Case 相应的值:{执行的操作}; … Default:{} }
      • For(,判断条件,){}
      • While(判断条件){}
    • 数组
      • 索引数组
        • $arr = array('s',1,2,8); //不指定键名,使用默认从0开始的键名(下标),和普通的数组相同
      • 关联数组
        • $arr = array('id'=>'value'); //指定每个值的键名,id是键名(下标名),value是键值,
      • 常用的对数组操作的函数
        • 常用的数组操作符
          • + == === != <> !==
          • + //组合两个数组中所有不同键名的数据,若两个数组中有相同的键名,则只保留加号前面数组中对应键名的数据
          • === //全等于,数据和对应数据的类型都必须相同
        • foreach
          • foreach($arr as $value) //遍历索引数组
          • foreach($student as $key => $value ) //遍历关联数组
        • array_combine($num2,$num1);
          • 合并数组函数 ,把$num2数组内容作为键名,把$num1数组内容作为键值
          • 参数只能是索引数组,并且两个数组元素个数必须相同
        • array_push($arr,'cheng','wei');
          • 会改变原有数组的信息
          • 追加函数,在$arr数组末尾进行追加数据,可追加多个数据,用逗号隔开
          • 追加的数据格式只能是键值(索引格式),不能是键名=>键值格式(关联格式)
        • array_pop($arr)
          • 会改变原有数组的信息
          • 输出数组最后一个元素
        • array_unshift($arr,'qiu','bi','te');
          • 会改变原有数组的信息
          • 在数组开头插入数据,和array_push()函数用法一致
        • array_shift($arr)
          • 会改变原有数组的信息
          • 输出头部元素
        • unset($arr[0],$student['张三'])
          • 会改变原有数组的信息
          • 删除数据,可删除多个数据,逗号隔开
        • array_values($arr[0])
          • 查询某个值是否存在
          • 返回值 bool类型
        • array_replace($num1,$num2);
          • 对给定的两个数组无影响
          • 保留键名在$num1中存在但$在num2中不存在的数据和$num2的全部数据
        • array_search('ren',$arr)
          • 返回$arr数组中‘ren’对应的键名
        • array_key_exists('张三',$student)
          • 查询$student数组中是否有‘张三’这个键名
          • 返回值 bool类型
        • in_array('ren',$arr)
          • 查询$arr数组中是否有‘ren’这个值
        • range (0,9,3)
          • 指定范围和跨度自动生成索引数组
          • 将0~9的数据按照跨度为3生成索引数组
          • 即得到0,3,6,9四个数据
        • array_rand($top,3)
          • 从指定的数组中随机取出一个或者多个键名
          • 注意取出的是键名而不是值
        • array_keys($top)
          • 输出该数组中所有的键名
        • array_values($top)
          • 输出该数组中所有的值
        • array_column($student,age)
          • 输出该数组中的某一列的数据
          • 针对二维以上的数组
        • array_reverse($num4)
          • 反转数组,将数据中的键值从开头到末尾反转(掉个盖儿),即开头键名对应末尾的键值,末尾键名对应开头的键值,一次类推
        • array_merge($num1,$num2)
          • 将两个数组中的所有键值合并成一个大的索引数组
        • array_flip($num2)
          • 将数组的键名和键值互换
          • 即原来的键名变成键值,原来的键值变成键名
        • array_fill(5,10,'REN')
          • 用REN作为填充数据,从键名为5的位置开始依次填充10个数据得到一个索引数组
          • 即有数据的键名是5~15,对应的键值是都REN
        • array_chunk($num2,3)
          • 将$num2数组拆分成3个数组
        • array_sum($num1)
          • 求数字键值类型的索引数组所有元素之和
      • 常用的字符串操作函数
        • declare(strict_types = 1);
          • 必须放在最开头
          • 声明函数参数类型必须严格匹配
          • 只针对函数指定参数类型的情况 如 function sum(int $a,int $b)
          • 此时$a,$b的传参数据必须是整数,不能是浮点型数据了
          • 如果没有开头的这句声明,则传参数据可以是浮点型数据,传入后会自动进行默认类型转换(只保留整数部分)
        • strtolower($str)
          • 将字符串全部转换成小写
        • strtoupper($str)
          • 将字符串转换成大写
        • strlen ($str)
          • 返回$str字符串的长度
        • strpos ($str, 're')
          • 输出字符串中re第一次出现的位置
        • strrpos ($str, 're')
          • 输出字符串中re最后一次出现的位置
        • str_replace ('e','o',$str)
          • 输出$str字符串中的e用o进行替换后的字符串
          • 不改变原来的字符串
        • substr($str,2,3)
          • 截取函数,从字符串$str的位置2开始截取3个字符
        • explode(" ",$str)
          • 将字符串$str用空格进行分割形成数组
          • 分隔符可以自己指定任意字符
        • implode('*',explode(" ",$str))
          • 把字符型数组用给定的连接符进行拼接组成一个字符串
        • trim($str,'1')
          • 去掉字符串开头和结尾多余的空格
          • 可以指定修剪的数据,默认去掉冗余的空格
          • 上述指定字符1,即去掉开头和结尾多余的字符1
        • str_repeat('string',3)
          • 重复多次指定字符串输出
          • 即 stringstringstring
        • strcmp('strong','string')
          • 判断两个字符串是否相等
          • 相等输出0,前面大输出1,后面大输出-1
      • 数学函数
        • abs(-15.124)
          • 绝对值函数
        • pow($t,2)
          • 求幂函数,上述为平方
        • sqrt($t)
          • 平方根函数
        • fmod(x,-y)
          • 求x/y的余数的函数
        • intval($t)
          • 求整数部分
        • floatval($t)
          • 求小数部分
        • exp($t)
          • 求e的$t次方
        • floor($t).
          • 向下取整数
        • ceil($t)
          • 向上取整数
    • 函数
      • 有名函数
        • function sum($a,$b){return $a+$b;} //函数创建(值传递)
        • function sum(&$a,&$b){return $a+$b;} //引用传递
        • 函数内部调用全局(外部)变量
          • global $x;
          • $GLOBALS['x']
        • 静态变量
          • static $counts = 0;
            • 只初始化一次
      • 匿名函数
        • $sum = function($a,$b){return $a+$b;}
        • $sum($a,$b) //使用
        • 匿名函数传参
          • function avg($a,$b,$func){return $func($a,$b);} //函数定义
          • avg($a,$b,$function($m,$n){return $m+$n}); //函数调用
        • 匿名函数使用外部变量
          • $sum = function($a,$b)use($key){return $a+$b;}
          • $key变量是外部变量,必须通过use函数才能使用
          • 匿名函数内部不能使用全局变量和静态变量
    • 类/对象
      • 定义
        • class person{var name; var age ; function __construct(){} function eat(){}}
      • 特性
        • 封装
        • 继承
          • class son extends person{}
        • 多态
文章来源:https://blog.csdn.net/I_WORM/article/details/135351871
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。