Конечно данный код совершенно не допустим (то что я написал), но так думаю будет яснее что там выполняется.
Т.е. в '#default_value' прогоняется условие. Если $form['#user']->data['content_create_access_types'] не пусто, тогда в '#default_value' подставится form['#user']->data['content_create_access_types'], иначе он станет массивом.
Это тернарные операторы. Погугли если нужно понять суть.
Комментарии
<?php
if (!empty($form['#user']->data['content_create_access_types'])) {
'#default_value' => form['#user']->data['content_create_access_types'];
}
else {
'#default_value' => array();
}?>
Конечно данный код совершенно не допустим (то что я написал), но так думаю будет яснее что там выполняется.
Т.е. в '#default_value' прогоняется условие. Если $form['#user']->data['content_create_access_types'] не пусто, тогда в '#default_value' подставится form['#user']->data['content_create_access_types'], иначе он станет массивом.
Это тернарные операторы. Погугли если нужно понять суть.
Спасибо. Разобрался. А почему такой вариант не допустим???
$type = is_string($node) ? $node : $node->type;
а такой код, как записать по-другому что бы было понятно?
<?php if (is_string($node)) {
$type = $node
}
else {
$type = $node->type;
}
?>
так?
а это is_string($node) - как понять, почему именно строковое?
Что значит как понять?
ну по сути что означает
почему нужно проверять переменную является ли она строкой? может быть не строкой?
Он просто не заработает (я имею ввиду свой)
Если только так:
<?php
if (!empty($form['#user']->data['content_create_access_types'])) {
$value = form['#user']->data['content_create_access_types'];
}
else {
$value = array();
} $array = array('#default_value' => $value);
?>
Так что тернарный оператор тут значительно удобнее.