这里有几个问题..
所有作品的含义是什么?
(( ! is_array($data)) ? $data : '')
最后如何在函数中使用它?
function form_input($data = '', $value = '', $extra = '')
{
$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
return "<input "._parse_form_attributes($data, $defaults).$extra." />";
}
三江源。布雷克
答案 0 :(得分:3)
好的,就我理解你的问题,让我试试。
以下语法是什么?
这是一个功能定义。
所有作品的含义是什么?
这是ternary operator。这意味着:如果$data
不是数组(!is_array($data))
,则返回$data
(? $data
),否则返回空字符串(: ''
)
这是if-else
的简写。
最后如何在函数中使用它?
不确定你的意思。函数_parse_form_attributes($data, $defaults)
被称为巫术似乎返回一个字符串。
如果你问题中的 引用了$defaults
,那么它只是一个构建的数组,它包含以下值:
Array (
'type' => 'text',
'name' => $data, // or empty string if $data is an array,
'value' => $value
);
它用于构建一个输入元素,如下所示:
<input type="text"
name="(value of $data or empty)"
value="(value of $value)"
(value of $extra)
/>
答案 1 :(得分:1)
好的,这似乎为表单输入生成了带有有用默认值的HTML ....按顺序回答你的Q:
form_input('SomeData', 'SomeValue');
type
将默认为text
以输出<input type="text" [blah]>
<input type="text" key="Value" [blah]>
?如果是这种情况,我个人会失去$extra
变量,而是拥有一组key-&gt;值对。如果不这样做,您需要酌情$extra
,例如key1="value1" key2="value2"
答案 2 :(得分:1)
这是一个内联表达式:
function form_input($data = '', $value = '', $extra = '')
{
if (is_string($data)) { // or better: is_scalar()
// leave as-is
}
else {
$data = '';
}
...
(略有变化。)
它基本上确保$data
参数永远不是数组。也许在该函数的先前版本中允许它是一个数组,这是确保正确操作的安全代码。
请注意,类型强制执行是另一种方法(通常是过度杀伤,但有时是可取的):
function xy($data, $value, $z) {
assert( ! is_array($data) );
assert( is_string($value) );
答案 3 :(得分:0)
1)返回一个输入字段;
2)原谅?
3)函数有三个值。 $ value是输入字段的默认值(在文本框中找到的值);如果表单不是数组,$ data将是表单的名称,否则名称将为空; $ extra是一个包含其他内容的字符串。请参阅函数_parse_form_attributes;
4)link
顺便说一句,我真诚地希望_parse_form_attributes()做一些惊人的事情,因为它看起来像一个令人难以置信的冗长函数,并且codeigniter有一些方便的内置表单生成函数。