Blogger Information
Blog 10
fans 0
comment 0
visits 5977
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
8月16日学习笔记
Brain
Original
390 people have browsed it

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 <<< ‘标识符’ ….. 标识符;
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post