PHP 三元运算符检查变量是否包含某些内容?

标签 php

考虑以下内容(简化为最基本的内容):

abstract class Validator {    

    public function __construct($data = null)
    {
        $this->data = $data ?: Input::all();
    }
}


$validation = new PageValidator($data);

'Input::all' 正在返回一个数组。 $data 也是一个数组。

我遇到的问题是:

$this->data = $data ?: Input::all();

我认为它本质上是这样做的:

    if(!$data) {
        $this->data = Input::all();
    } else {
        $this->data = $data;
    };

但是我真的不明白怎么办?

最佳答案

这是一个feature of PHP 5.3及以上:

The ternary operator now has a shorthand form: ?:.

关于PHP 三元运算符检查变量是否包含某些内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024310/

相关文章:

php_memcache.dll 用于 64 位 wampserver,带有 php 5.3.13 或 5.4.3

PHP PDO INSERT 查询运行两次

php - OOP概念理解

php - Prestashop : how to override a module class contained in a file that includes other classes?

php - Symfony 3 身份验证/登录表单不起作用

javascript - 页面加载时设计表格

php - 启用复选框并按编辑按钮并在弹出窗口中打开

php - 如何更改 amCharts 中甘特图的高度?

php - Slim Framework - 将代码拆分为 index.php 以外的多个文件

javascript - 复选框选择运行 javascript 调用,但未获取所有值