博客列表 >8月16日学习笔记

8月16日学习笔记

Brain
Brain原创
2020年08月17日 19:49:57483浏览

php学习笔记

1、运算符

  • 关键点:需要什么操作,几个操作数,返回值的类型,应用场景
  • 比较运算符:比较操作,两个操作数,返回布尔值
    |大于>,小于<,等于==,全等于===
    |—太空船运算<=>(前大于后,返回1,前小于后,返回-1,前后相等,返回0)
  • 逻辑运算符:逻辑操作,两个或一个操作数,返回布尔值
    |—&&与操作,||或操作,!非操作
    |—前后操作数都自动转换为布尔值
    |—短路运算:当与操作第一个操作数为false,就停止运算,返回false,当或操作第一个操作数为true,就停止运算,返回true

    • 三元运算符:表达式 ? 为真时的值 : 为假时的值
  • null合并运算符,主要用于设置默认值
    $page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1;
    用null合并运算后:
    $page = $_GET[‘page’] ?? 1;

2、流程控制

  • 顺序:最普通的,从上到下逐步执行
  • 分支:设置条件,根据判断结果选择执行路径
    |—单分支:if(conditions){};
    |—单条语句时,可省略{},if(conditions)…;
    |—多条语句时,可改造为 if(conditions): …;…;endif;
    |—双分支:if(conditions){}else{};
    |—可改造为 if(conditions):…;…;else:…;…;endif;
    |—多分支: switch(conditions){case1:…;break;case2:…;break;default:…;break;}
    |—模板语法:将每一个’{‘改为’:’,最后一个’}’改为endif或endswitch,中间的}去掉。
  • 循环:设置条件,满足执行,不满足跳过
    |—判断型循环
    |—current($arr),返回数组$arr的第一个值,next($arr),将$arr数组的当前指针向后移一位,reset($arr),将$arr数组的指针复位
    |—count($arr)返回数组$arr中的元素个数
    |—while (conditions){…},适用模板语法
    |—do{…}while(donditions),不适用模板语法
    |—计数型循环
    |—for(计数变量;计数条件;计数变量自增或自减){…},适用模板语法。

3、函数:代码复用的手段

  • 函数声明
    |—function 函数名 (形参列表): 返回值类型{…},形参和返回值类型可以不写
    |—func_get_args()[i],返回函数的第i个形参
    |—func_get_arg(i),同上
  • 函数类型
    |—自定义函数,即按以上方式,由用户声明的函数
    |—系统函数,系统已经定义好的函数
    |—mb_substr($str,x,y),返回字符串$str的第x个开始的y个字符
    |—可变函数,将函数名放在一个变量中
    |—匿名函数,没有名称的函数,将函数声名直接赋给一个变量,$var = function(){…};
    |—闭包函数可以通过关键字use导入函数外声明的变量$b
    1. $var = function ( $a ) use ( $b ) : 返回类型{...;return ...;};
  • 函数的返回值
    |—函数必有返回值,且只有一个返回值
    |—多值返回方式—通过字符串拼接,return $a.$b….;
    |—多值返回方式—通过返回数组, return $arr[$a,$b,…];
    |—多值返回方式—通过json格式, return json_encode([‘a’=>$a,’b’=>$b,…]); 数据格式为:{‘a’:$a的值,’b’:$b的值}
    |—将返回值序列化成字符串 return serialize($var);数据格式为 格式:长度:值,eg. s:9:{‘hello jk!’};a:2:{0:a,1:b},反序列化用unserialize()函数
  • 函数的参数
    |—值参数,默认方式,函数运算不影响所传参数的值
    |—引用参数,在函数形参列表中,加上取地址符&,函数运算结果就会影响所传参数的值
    |—默认参数,函数列表给个初始化的值,当不传此参数时,函数将使用此初始化值当作默认值
    |—剩余参数(…rest/…spread),将所传参数全部归纳到一个数组中,function funname (…$args){},即:调用函数funname()时,所传参数将被放在$args[]数组中,调用函数时可以给所传数组参数前加’…’,与前者操作相反。
    1. |--array_sum($arr)返回数组值的合
  • 函数调用
    |—回调函数:可不等当前函数执行完成,就可执行后续代码
    1. |--call_user_func('funcname',$args)
    2. |--call_user_func_array('funcname',[])
    3. |--array_map(闭包,$args)
    4. |--range(x,y,z),返回从xy的数,步长z可不加,默认1
  • 函数的命名空间
    |—php中不允许命名相同的函数,因此出现了命名空间,在不同的命名空间中,可以命名同名函数

4、字符串

  • 字符串长度上限为2G
  • 单引号和双引号都可以定义字符串
  • 单引号定义的字符串内部不做解析,原样输出
  • 双引号定义的字符器可以解析内部变量
  • 定界符{}
  • heredoc相当于双引号的加强版,内部可以加双引号,且不用转义
    |—eg. echo <<< 标识符 ….. 标识符;
  • nodoc相当于单引号的加强版,适用于大段文本,内部不能用变量
    |—eg. echo <<< ‘标识符’ ….. 标识符;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议