РЕШЕНО! Подскажите что задано в дефолтных значениях в коде одно из модуля

Главные вкладки

Комментарии

Аватар пользователя Niklan Niklan 19 декабря 2012 в 11:14
<?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'], иначе он станет массивом.

Это тернарные операторы. Погугли если нужно понять суть.

Аватар пользователя iNFerNo iNFerNo 19 декабря 2012 в 11:29

$type = is_string($node) ? $node : $node->type;

а такой код, как записать по-другому что бы было понятно?

<?php

if (is_string($node)) {
$type $node 
}
else {
$type $node->type;
}
?>

так?

Аватар пользователя iNFerNo iNFerNo 19 декабря 2012 в 11:38

ну по сути что означает
почему нужно проверять переменную является ли она строкой? может быть не строкой?

Аватар пользователя Niklan Niklan 19 декабря 2012 в 14:25

"iNFerNo" wrote:
А почему такой вариант не допустим

Он просто не заработает (я имею ввиду свой)

Если только так:

<?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);
?>

Так что тернарный оператор тут значительно удобнее.