PHP7三元运算和...
阅读 174 作者 阿林

三原运算

$type = 2;
echo $type == 1 ? "1" : $type == 2 ? "2"  : $type == 3 ? "3" : "4";

// 运算步骤
$res = $type == 1?"1":($type == 2);
//$res = true

$res = $res ?2:($type ==3);
//$res=2

$res = $res ? "3" :4;
//$res = 3

// 3
echo $res;

运算符??和?:

$a=$c??$b;
// 等同于
$a=isset($c)?$c:$b;

$a=$c?:$b;
// 等同于 
$a=$c?$c:$b;

// 当执行下来,假设数组a不存在status的key
// 正常输出-1
$a['status']??-1;  
// 产生错误读取不到status
$a['status']?:-1; 

代码中...的意义

// 函数有三个变量
function add($a, $b, $c)
{
    return $a + $b + $c;
}

$num1 = [2, 3];
$num2 = [1, 2, 3];
// 使用数组传入
echo add(1, ...$num1);    // 6
// 或
echo add(...$num2);       // 6

// 另一模式
echo add2(1, 2, 3);       // 6

function add2 (...$list)
{
    $num = 0;
    foreach ($list as $val) {
        $num += $val;
    }

    return $num;
}

 

错误信息

// 关闭错误报告
error_reporting(0);
// 报告 runtime 错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 报告所有错误
error_reporting(E_ALL);
// 等同 error_reporting(E_ALL);
ini_set("error_reporting", E_ALL);
// 报告 E_NOTICE 之外的所有错误
error_reporting(E_ALL & ~E_NOTICE);
[编辑于 2019/07/01 11:05]