在javascript中,我可以将对象文字作为参数传递给对象,如果不存在值,我可以通过以下代码引用默认值;
this.title = params.title || false;
用PHP有类似的方法吗?
我是PHP的新手,似乎找不到答案,如果没有像javascript这样简单的解决方案,对我来说简直是疯了!!
在PHP中,在函数调用中使用三元运算符的最佳方式是什么?
isset($params['title']) ? $params['title'] : false;
感谢
不要寻找完全等价的,因为PHP的布尔运算符和数组访问机制太不同了,无法提供这一点。您想要的是为参数提供默认值:
function foo(array $params) {
$params += array('title' => false, ...);
echo $params['title'];
}
像这样的$title = (isset($title) && $title !== '') ? $title : false;
或者使用empty
函数:
empty($params['title']) ? false : $params['title'];
$x=($myvalue==99)?"x是99":"x不是99";
PHP一行如果。。。if($myvalue==99){x是99}否则{x不是99//在此处将值设置为false}
<?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种方法。您可以在类定义中默认属性值。或者在__construct
分配或特定的设置器setTitle
中默认它。
但这一切都取决于代码的其余部分为了正确使用PHP
,您需要忘记JS
。这是一个稍微严格一点的编程环境,即使类型非常松散。我们在PHP
中有真实的类,而不是像JS
那样提供IDE代码完成支持的虚函数类大象。