在javascript中我可以将对象文字作为参数传递给对象,如果某个值不存在,我可以通过编码以下内容来引用默认值;
this.title = params.title || false;
使用PHP有类似的方法吗?
我是PHP的新手,我似乎无法找到答案,如果没有像javascript这样简单的解决方案,那对我来说似乎很疯狂!!
PHP中最好的方法是使用带函数调用的三元运算符吗?
isset($params['title']) ? $params['title'] : false;
由于
答案 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代码完成支持。