Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

PHP и значения по умолчанию.

Для того, чтобы присваивать в PHP переменным значения по умолчанию, я испокон веков использую следующую конструкцию:

isset($var) or $var = 'default';

Где, вместо $var подставляется ваша переменная, а вместо 'default' — значение, которое будет присвоено переменной, если она не определена.

Вообще я довольно широко использую «and» и «or», например, если мне надо выполнить вторую функцию, только если первая вернула «1» или «TRUE», я использую конструкцию

Check1($var) and Check2($var);

Наверное, сказывается влияние языка Perl — он мне привил любовь к языковым конструкциям.

13 комментариев
Улитка 2003

А у меня сказывается Java. Всё в скобках.
Хотя твои варианты мне нравятся, изящные штучки.

pavel 2003

а разве это не все так делают? :-)

Евгений Степанищев (bolknote.ru) 2003

Комментарий для pavel:

Неа :)

codex 2003

Это говорит о хорошем стиле программирования, имхо :)

Евгений Степанищев (bolknote.ru) 2003

Комментарий для codex:

Наверное :)

Ktulhu 2003

чесслово, это плохой стиль программирования, но часто ловишся на подобные конструкции.

Евгений Степанищев (bolknote.ru) 2003

Комментарий для Ktulhu:

Плохой? Почему?

kukutz 2003

Для того, чтобы присваивать в PHP переменным значения по умолчанию, я испокон веков использую следующую конструкцию:

function name ($variable = «default»)

=)

Евгений Степанищев (bolknote.ru) 2003

Комментарий для kukutz:

Это в функциях.

Ktulhu 2003

Влияние Perl как write only языка. В данном случае еще куда ни шло, но вообще в последнее время я стараюсь избегать хитростей без необходимости. Код должен быть доступен к пониманию другими людьми а не только мной.

Евгений Степанищев (bolknote.ru) 2003

Комментарий для Ktulhu:

Перл далеко не write only. Просто write на нём надо уметь.

sergeante 2003

isset($var) or $var = ’default’;

if (!isset($var)) $var = ’default’;

Check1($var) and Check2($var);

if (Check1($var)) Check2($var);

Имхо, так всёже понятней. А на твоём варианте мозг спотыкается и пытается преобразовать выражение в борее читаемы вид. Хотя, всё дело привычки.

Евгений Степанищев (bolknote.ru) 2003

Комментарий для sergeante:

Дело привычки. Надо уметь читать язык, на котором пишешь.