Принятый ответ замечателен, однако, для упрощения, я хотел бы сделать все возможное, чтобы описать его по-другому. Надежда может помочь некоторым людям.
Когда вы сталкиваетесь с проблемой линеаризации, первый шаг - это рисование дерева иерархии классов и признаков. Для этого конкретного примера дерево иерархии будет примерно таким:
Второй шаг состоит в том, чтобы записать все линеаризация признаков и классов, которые мешают целевой задаче. Вам понадобятся все они в одном до последнего шага. Для этого вам нужно написать только путь к корню. Линеаризация признаков такова:
L(A) = A
L(C) = C -> B -> A
L(B) = B -> A
L(D) = D -> A
Третий шаг - написать линеаризацию проблемы. В этой конкретной задаче мы планируем решить линеаризацию
blockquote>
var d = new A with D with C with B;
. Важно отметить, что существует правило, с помощью которого он разрешает метод вызов, сначала используя поиск в начале, сначала в глубину. Другими словами, вы должны начать писать Линеаризацию с самой правой стороны. Это так: L (B) >> L (C) >> L (D) >> L (A)
Четвертый шаг - самый простой шаг. Просто замените каждую линеаризацию со второго шага на третий шаг. После подстановки у вас будет что-то вроде этого:
D -> A -> C -> B -> A -> D -> A -> A
И последнее, но не менее важное: , теперь вы должны удалить все дублированные классы слева направо. Смелые символы должны быть удалены: D -> A -> C -> B -> A -> D -> A -> A
Вы видите, у вас есть результат: C -> B -> D -> A Поэтому ответ CBDA.
Я знаю, что это не индивидуально глубокое концептуальное описание, но может помочь в качестве дополнения к концептуальному описанию, которое я предполагаю.
Простая проблема на самом деле. Изменение:
if (strTemp != '')
кому:
if ($strTemp != '')
Возможно можно также хотеть изменить его на:
if ($strTemp !== '')
с тех пор != ''
возвратит true, если Вы передадите, числовой 0 и несколько других случаев из-за автоматического преобразования типов PHP.
Вы не должны использовать встроенное пустое () функция для этого; см. комментарии и таблицы сравнения типов PHP.
возможно, можно попробовать это
if(isNotEmpty($userinput['phoneNumber']) == true)
поэтому php конфигурации в php.ini
Ну, вместо ответа (я верю, Вы уже решили свою проблему), я предложу Вам совет.
Я не знаю обо всем другие, но я лично становлюсь очень раздраженным при виде чего-то как:
if(<<condition>>)
{
return true;
}
return false;
это призывает к изящному"return (<<condition>>);
"решение. Всегда смотрите на свой код и удалите этот вид логики. Вам не нужен оператор IF для каждой ситуации.
PHP оценивает пустую строку ко лжи, таким образом, можно просто использовать:
if (trim($userinput['phoneNumber'])) {
// validate the phone number
} else {
echo "Phone number not entered<br/>";
}
В Вашем выражении if в функции Вы обращаетесь к переменной 'strTemp', который не существует. '$strTemp' действительно существует, все же.
Но PHP уже имеют пустое () - доступная функция, почему делают Ваше собственное?
if (empty($str))
/* String is empty */
else
/* Not empty */
Из php.net:
Возвращаемые значения
Возвращает FALSE, если var имеет непустое и ненулевое значение.
Следующие вещи считаются пустыми:
* "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) * NULL * FALSE * array() (an empty array) * var $var; (a variable declared, but without a value in a class)
Я всегда использую регулярное выражение для проверки пустую строку, относясь ко времени дней CGI/Perl, и также с JavaScript, итак, почему не с PHP также, например, (хотя не протестировано)
return preg_match('/\S/', $input);
Где \S представляет любой непробельный символ
<option value=""> Default </option>
<option value="true" {{app('request')->input('status') ? 'selected' : ''}}> 1 </option>
<option value="false" {{!is_null(app('request')->input('status')) && app('request')->input('status') == 0 ? 'selected' : '' }}> 2 </option>