PHP内联值评估

时间:2012-03-01 05:38:50

标签: php codeigniter

我正在使用CodeIgniter,我使用以下代码段是编辑表单的一部分。它的作用是获取一个值进行编辑,并填充该字段。当存在验证错误时,使用相同的表单构建器重建表单,并且字段将是用户可能编辑或未编辑的重新填充值。

$field = form_input(array(
    'name' => 'title',
    'id' => 'title'
 ), set_value('title') || 'givenValue') <-- this part

在CodeIgniter中,.set_value()只返回一个字符串,该字符串是某个表单字段的值,如果表单有错误(主要用于在错误后重新填充字段)。

我知道在JavaScript中,我可以像var someObj = param.obj || {}一样,如果someObj存在,则param.obj等于{},否则等于1。在上面的PHP代码段中,它返回{{1}}(我猜想布尔值)。

总之,如果存在,我希望使用前一个值,或者如果不存在,则使用预定值(另外,如果是新表单,则为空值)

如何在PHP中进行“内联评估”?或者在CodeIgniter中有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

更新

根据manual,CI已为您提供默认选项

set_value('title', 'givenValue')

在纯PHP中,如果您使用的是PHP 5.3,则可以使用三元快捷方式

set_value('title') ?: 'givenValue'

否则,请尝试长版

set_value('title') ? set_value('title') : 'givenValue'