2

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

this.title = params.title || false;

有没有类似的方法可以用 PHP 做到这一点?

我是 PHP 新手,我似乎找不到答案,如果没有像 javascript 这样简单的解决方案,我觉得这简直是疯了!

PHP中使用三元运算符和函数调用的最佳方法是什么?

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

谢谢

4

5 回答 5

3

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

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

    echo $params['title'];
}
于 2013-07-27T08:10:46.287 回答
2

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

于 2013-07-27T08:08:25.303 回答
1

或使用以下empty功能:

empty($params['title']) ? false : $params['title'];
于 2013-07-27T08:13:15.293 回答
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中的3种方式。您可以在类定义中默认属性值。或者,您将其默认设置为__constructassignment 或特定的 setter setTitle

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

于 2013-07-27T09:07:04.637 回答
0

$x = ($myvalue == 99) ?"x 是 99": "x 不是 99";

PHP one liner if ... if ($myvalue == 99) {x is 99} else {x is not 99 //在此处将值设置为 false}

于 2013-07-27T08:13:28.340 回答