zoukankan      html  css  js  c++  java
  • PHP语法糖

    PHP语法糖

        每一次伴随着PHP新版本的发布,几乎都会有一些新的语法加入,这种语法对语言的功能并没有影响,但是更方便编程使用。我们称之为语法糖,其实就是一些语法技巧,来简化程序员工作。

        1、用...定义变长参数函数(php5.6及以上版本)

        php在用户自定义函数中支持可变数量的参数列表:使用…$args代替任意数量参数

        简单来说,就是允许我们声明传入的参数数组,并且参数拆包允许我们传递一个数组到一个函数,在函数内部自动解包

        参考代码:

     1 <?php
     2 function add($a, $b) {
     3     return $a + $b;
     4 }
     5 
     6 $arr = [1, 2];
     7 $arr2 = [1, 2, 3, 4];
     8 $arr3 = [1];
     9 
    10 echo add(...$arr).PHP_EOL; //输出3
    11 echo add(...$arr2).PHP_EOL; //也输出3,忽略数组多余参数
    12 echo add(...$arr3).PHP_EOL; //报错,方法缺少必要参数
    13 
    14 // 输出结果
    15 // 3
    16 // 3
    17 // Fatal error: Uncaught ArgumentCountError: Too few arguments to function add()...

        2、list- 把数组中的值赋给一组变量

        1)像 array() 一样,这不是真正的函数,而是语言结构。 list() 可以在单次操作内就为一组变量赋值。

     1 <?php
     2 
     3 $info = array('coffee', 'brown', 'caffeine');
     4 
     5 // 列出所有变量
     6 list($drink, $color, $power) = $info;
     7 echo "$drink is $color and $power makes it special.
    ";
     8 
     9 // 列出他们的其中一个
    10 list($drink, , $power) = $info;
    11 echo "$drink has $power.
    ";
    12 
    13 // 或者让我们跳到仅第三个
    14 list( , , $power) = $info;
    15 echo "I need $power!
    ";
    16 
    17 // list() 不能对字符串起作用
    18 list($bar) = "abcde";
    19 var_dump($bar); // NULL
    20 
    21 // 输出结果
    22 
    23 // coffee is brown and caffeine makes it special.
    24 // coffee has caffeine.
    25 // I need caffeine!

       2) list() 使用 array 索引的顺序和它何时定义无关

       注意:

       1)在PHP7.1.0 之前的版本,list() 仅能用于数字索引的数组,并假定数字索引从 0 开始。

       2)PHP5里,list() 从最右边的参数开始赋值; PHP7 里,list() 从最左边的参数开始赋值。

       参考代码一:

     1 <?php
     2 $foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
     3 $foo[1] = 'd';
     4 list($x, $y, $z) = $foo;
     5 //var_dump($foo, $x, $y, $z);
     6 
     7 // 输出结果
     8 //array(4) {
     9 //    [2]=>
    10 //  string(1) "a"
    11 //    ["foo"]=>
    12 //  string(1) "b"
    13 //    [0]=>
    14 //  string(1) "c"
    15 //    [1]=>
    16 //  string(1) "d"
    17 //}
    18 //string(1) "c"
    19 //string(1) "d"
    20 //string(1) "a"

        参考代码二:

    1 <?php
    2 $foo = array(2 => 'a', 1 => 'b', 0 => 'c');
    3 list($x, $y, $z) = $foo;
    4 var_dump($x, $y, $z);
    5 
    6 // 输出结果
    7 // c
    8 // b
    9 // a

       参考代码三:

    1 <?php
    2 $foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
    3 list($x, $y, $z) = $foo;
    4 var_dump($x, $y, $z);
    5 
    6 // 输出结果
    7 // c
    8 // NULL
    9 // a

    这里会报一个notice的错误:

    这里因为没有找到为1的索引,所以报了一个警告错误。

     

    参考链接:https://www.php.net/manual/zh/function.list.php

  • 相关阅读:
    用户体验评价
    星辰小队针对于软件“星遇”的第二次10天冲刺——第4天
    星辰小队针对于软件“星遇”的第二次10天冲刺——第3天
    周周总结——时时更新(第4学期,第14周)
    星辰小队针对于软件“星遇”的第二次10天冲刺——第2天
    星辰小队针对于软件“星遇”的第二次10天冲刺——第1天
    星辰小组——第一阶段评分+各小组的意见反馈
    周周总结——时时更新(第4学期,第13周)
    规划极限编程阅读笔记02
    周周总结——时时更新(第4学期,第12周)
  • 原文地址:https://www.cnblogs.com/hld123/p/14323861.html
Copyright © 2011-2022 走看看