PHP或运算符类似于javascript?有一个简单的方法吗?

时间:2013-07-27 08:04:27

标签: php

在javascript中我可以将对象文字作为参数传递给对象,如果某个值不存在,我可以通过编码以下内容来引用默认值;

this.title = params.title || false;

使用PHP有类似的方法吗?

我是PHP的新手,我似乎无法找到答案,如果没有像javascript这样简单的解决方案,那对我来说似乎很疯狂!!

PHP中最好的方法是使用带函数调用的三元运算符吗?

isset($params['title']) ? $params['title'] : false;

由于

5 个答案:

答案 0 :(得分:3)

不要寻找完全等效的,因为PHP的布尔运算符和数组访问机制太不相同了。您想要的是为参数提供默认值

function foo(array $params) {
    $params += array('title' => false, ...);

    echo $params['title'];
}

答案 1 :(得分:2)

像这样$title = (isset($title) && $title !== '') ? $title : false;

答案 2 :(得分:1)

或使用empty功能:

empty($params['title']) ? false : $params['title'];

答案 3 :(得分:0)

$ x =($ myvalue == 99)? “x为99”:“x不是99”;

PHP one liner如果......     if($ myvalue == 99){x是99} else {x不是99 //在这里设置值为false}

答案 4 :(得分:0)

<?php
class MyObject {
    // Default value of object property
    public $_title = null;
    // Default value of argument (constructor)
    public function __construct($title = null){
        $this->_title = $title;
    }
    // Default value of argument (setter)
    public function setTitle($title = null){
        // Always validate arguments if you're serious about what you're doing
        if(!is_null($title) and !is_string($title)){
            trigger_error('$title should be a null or a string.', E_USER_WARNING);
            return false;
        }
        $this->_title = $title;
        return true;
    }
} // class MyObject;
?>

这是使用默认值创建对象的方法。 1种方法。您可以在类定义中默认属性值。或者,您可以在__construct作业或特定的设置器setTitle中将其默认设置。

但这完全取决于您的其他代码。您需要忘记JS才能正确使用PHP。这是一个稍微严格的编程环境,即使是非常松散的类型。我们在PHP中有真正的类,而不是虚构的函数类elephants ,它们不像JS那样提供IDE代码完成支持。