美文网首页
php 三元运算(?:)详解

php 三元运算(?:)详解

作者: WMSmile | 来源:发表于2019-03-19 12:15 被阅读0次

三元运算符是软件编程中的一个固定格式,语法是“条件表达式? 表达式1:表达式2”。条件表达式成立,就是1的的值,反之,则是2的值

<?php
$action = (empty($_POST['action'])) ? 'default' : $_POST['action']
?>

相当于

<?php
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}
?>

不清晰的表达式:

<?php
// 乍看起来下面的输出是 'true'
echo (true?'true':false?'t':'f');
// 然而,上面语句的实际输出是't',因为三元运算符是从左往右计算的
// 下面是与上面等价的语句,但更清晰
echo ((true ? 'true' : 'false') ? 't' : 'f');

//这里,你可以看到第一个表达式被评估为'true',这个
//反过来评估为(bool)true,从而返回真正的分支
//第二个三元表达式
?>

堆叠三元运算符,唯一原则从左到右依次

<?php
echo 0 ?: 1 ?: 2 ?: 3; //1
echo 1 ?: 0 ?: 3 ?: 2; //1
echo 2 ?: 1 ?: 0 ?: 3; //2
echo 3 ?: 2 ?: 1 ?: 0; //3

echo 0 ?: 1 ?: 2 ?: 3; //1
echo 0 ?: 0 ?: 2 ?: 3; //2
echo 0 ?: 0 ?: 0 ?: 3; //3
?>

关于省略?:相当于

<?php
$some_variable ?: 'default_value';
//等价于
(isset($some_variable) && $some_variable) ? $some_variable : 'default_value';
?>

参考原文地址

相关文章

  • 理解php中的?:与??

    三元运算符(?:) php 5.3 空合并运算符(??)php 7

  • php 三元运算(?:)详解

    三元运算符是软件编程中的一个固定格式,语法是“条件表达式? 表达式1:表达式2”。条件表达式成立,就是1的的值,反...

  • php三元运算符简述

    php的三元运算符有几种写法: $arr = [1,2]; 1、?? 运算符(合并运算符) 此运算符是php7加...

  • 第5章 PHP中常用的运算符

    什么是运算符 PHP中的运算符有哪些?PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算...

  • 2019-07-23

    php支持以下类型的运算符。算术运算符,比较运算符,逻辑(或关系)运算符,赋值运算符有条件(或三元)运算符.

  • Learning PHP Day1(运算符、数组)

    1. 运算符 PHP 中的运算符分为:算术运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符...

  • PHP 7 新特性 NULL 合并运算符

    PHP 7 新增加的 NULL 合并运算符(??)是用于执行isset()检测的三元运算的快捷方式。 NULL 合...

  • php运算符

    算数运算符 递增/递减运算符 比较运算符 逻辑运算符 三元运算符 组合比较符(PHP7+) 位运算符 运算符优先级

  • 入门篇/Chapter 5

    运算符 运算符是告诉PHP做相关运算的标识符号。一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符...

  • PHP学习笔记 - 入门篇(4)

    什么是运算符 PHP运算符一般分为算术运算符、赋值运算符、比较运算符、三元运算符、逻辑运算符、字符串连接运算符、错...

网友评论

      本文标题:php 三元运算(?:)详解

      本文链接:https://www.haomeiwen.com/subject/fcdgmqtx.html