运算符拾遗(Operators)

今天看到了这里,有一些平时不在意的地方。记录下来。

一、运算符的优先级

其实我不是很在意这个事情,必要的东西都是走括号的。有些东西你不常用,别人也不常用。那么你写出来会浪费别人读代码的时间。不如老老实实用括号来的清晰。

二、??和?:

??    null合并运算符(Null Coalescing Operator),在php7中生效。

isset():检测变量是否设置,并且不是 NULL。

(expr1) ?? (expr2)  相当于isset(expr1)为真,返回expr1;为假,返回expr2;

<?php
// Example usage for: Null Coalesce Operator
$action = $_POST['action'] ?? 'default';

// The above is identical to this if/else statement
if (isset($_POST['action'])) {
    $action = $_POST['action'];
} else {
    $action = 'default';
}

?>

?:  三元运算符(Ternary Operator),三元运算符的缩写。

(expr1) ?: (expr2) 相当于(expr1)为真,返回expr1;为假,返回expr2;

因为false,0,‘’都可以用empty校验,所以也相当于empty(expr1)为真,返回expr2;为假,返回expr1;本质上它是 (expr1) ? (expr1) : (expr3)的简写形式。

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}

?>

三、执行运算符(Execution Operators)

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!(这里是1左边的键位)PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数shell_exec() 相同。

<?php
  $output = `date`;
  echo "Current date of your system: $output";
?>

猜你喜欢

转载自blog.csdn.net/wwx890208/article/details/83550384