хочу оператор || из JS в PHP!

Духовность™

Продвинутый новичок
хочу оператор || из JS в PHP!

Мне понадобилось вывести в шаблоне значение переменой. Но фикша в том, что шаблон используется 2 обработчиками.

В JavaScript есть один полезный оператор - || (об этом даже Котеров писал - http://dklab.ru/chicken/nablas/38.html )

expr1 || expr2

(Логическое ИЛИ) Возвращает expr1, если может быть конвертировано в true; иначе, возвращает expr2. Таким образом, при использовании с Boolean-значениями || возвращает true, если любой из операндов true; если оба false, возвращает false.
Вспомнив про это, я попробовал написать также в PHP:

PHP:
<?
$a = '';
$b = 'value';
echo ($a||$b);
?>
Естественно, получил на выходе булево значение.

Попробовал применить логическую операцию OR в контексте:

PHP:
<?
$a = '';
$b = 'value';
echo ($a|$b);
?>
и это работает для случая, когда одно значение пусто или 0. Но, к сожалению, этот оператор совсем не для этих целей (

Собственно, что хочу сказать - хочу оператор || в PHP! Он мог бы так обозначаться - |||.
В идеале было бы просто отлично, если бы была реализована возможность делать списки переменных типа ($a|||$b|||$c|||). Как вам идея? )
 

Духовность™

Продвинутый новичок
потому что так
1. некрасиво
2. больше 2=х значений нельзя использовать, а я хочу см. выше списочный пример
 

HraKK

Мудак
Команда форума
Dovg
Йопть еще один. Учите матчасть. Это не логическое ИЛИ.
 

Crys

Двинутый новичок
Йопть еще один. Учите матчасть. Это не логическое ИЛИ.
Вы топикстартера читали? Ему не надо логическое ИЛИ. Ему надо аналог a||b из javascript.

<script>
a = ''
b = 'value'
alert(a||b) //будет 'value'
a = 'valuea'
alert(a||b) //будет 'valuea'
</script>

В PHP это
<?php
$a = '';
$b = 'value';
if ($a)
echo $a;
else
echo $b;
?>

или

<?
$a = '';
$b = 'value';
echo $a?:$a:$b;
?>

-~{}~ 12.11.07 15:44:

2. больше 2=х значений нельзя использовать, а я хочу см. выше списочный пример
PHP:
echo $a?$a:($b?$b:$c);
красиво и понятно
 

Dovg

Продвинутый новичок
Crys
+1
в статье из первого поста про это и говориться

возвращает свой второй аргумент, если первый оказался «ложным» ... и первый — в противном случае.
$a?$a:$b;
делает тоже самое
 

Crys

Двинутый новичок
и для особых извращенцев не совставит труда нацарапать такое:
PHP:
<?
function mor() {
    $numargs = func_num_args();
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        if ($arg_list[$i])
            return $arg_list[$i];
    }
}

$a = '';
$b = 'value';
$c = null;

echo mor($a,$b,$c);
?>
 

cDLEON

Онанист РНРСlub
Не плохо было бы ещё к операциям присваивания прикрутить...А то заколёбывает вечно ифы прописывать и прочую фигню....
PHP:
$bla= (($row=blabla('bla'))?$row:'default');
Ни красива выглядет =(

-~{}~ 12.11.07 17:20:

Crys
Такое ощущение, как будто я на асме пишу...
Может мне и для СТДАУТА свои ф-и написать ? )
 

Духовность™

Продвинутый новичок
а как написать свою конструкцию языка? Что для этого надо? Сишный интерпретатор? Что ещё?
 

MiksIr

miksir@home:~$
Да, в перле это очень удобно было ;)
$x = $a || $b || $c || 'default';
Красиво... а запишите на ?: конструкции такую строчку, какой жуть будет ;)
 

Crys

Двинутый новичок
$x = $a?$a:($b?$b:($c?$c:'default'));

вполне красиво и читабельно...

имхо.. :)
 

cDLEON

Онанист РНРСlub
Да ну нах такие записи...

-~{}~ 12.11.07 20:33:

Crys
Если ты не понял, я пошутил.
Теперь можно смеятся....
 
Сверху