考虑:

 $snode->field_length = array();
 $snode->field_length['und'] = array();
 $snode->field_length['und'][0] = array();
 $snode->field_length['und'][0]['value'] = 5;


与只写:

 $snode->field_length['und'][0]['value'] = 5;


在第二种情况下,您将分配给不存在的字段。但是,PHP不会抱怨。这是否意味着可以这样编码?

最佳答案

是的,可以,但是也许不是最清晰的编写方式。

PHP具有动态类型,因此在使用变量之前不必指定变量的类型,因为解释器负责推断您要在运行时分配的类型。

我会考虑使用数组初始化器:

$snode->field_length = array(
    'und' => array(
        array(
            'value' => 5
        )
    )
);


或者,甚至更好,在PHP> = 5.4中:

$snode->field_length = [
    'und' => [
        [
            'value' => 5
        ]
    ]
];

09-12 07:13