Wpis z mikrobloga

@stacktrace: Tak, jest podobny operator, tzw. operator trójargumentowy.

Ex. PHP:

$a ? $b : $c // dodatkowo działa on inaczej niż w każdym innym języku na świecie

Natomiast tutaj operator jest dwuargumentowy, tylko "przypadkiem" korzysta z tych samych znaków ?:
foo() :? "lol"

Jest on odpowiednikiem || z Rubiego:

a || "lol" # jeśli a jest nilem (lub false, ale to nie jest teraz istotne) to zwróć "lol"
@jata: Nie, to nie jest rozszerzenie GNU a jest wpisane w standard. Poprawka, Elvis operator jest rozszerzeniem, czyli pominięcie środkowego argumentu.

@stacktrace: No i tylko potwierdziłeś to co napisałem. Co to ma do tego?
@Hauleth: Zasadniczo to ma tyle, że pokazuje, że napisałeś coś innego niż ja podesłałem. Może z cytatem będzie prościej:

Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.
@saul: nie znałem tego. Co nie zmienia faktu, że operator trojargumentowy w PHP działa inaczej niż gdzie indziej. Jak wrócę do kompa to dam przykład.
@saul:

The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE. Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

Z manuala.
@saul: Już powiedziałem, że się pomyliłem, ostatnim razem jak używałem PHP to jeszcze go nie było. Przy czym z opisu wynika, że ten Elvis działa tylko jeśli warunek będzie nullem, a PHPowy działa jeśli tam jest false expression.

@Cilthal: @jata: Chodzi o łączność:

PHP: http://ideone.com/yIaFVn

Reszta świata:
C: http://ideone.com/IFm1z5
C#: http://ideone.com/wUNl3Q
Java: http://ideone.com/HBofMx
D: http://ideone.com/lbyOJk
JS: http://ideone.com/P6yXeg
Widzę już. To chyba nawet w php.net jest info o tym, żeby nie zagniezdzac tego, bo wyniki mogą być niespodziewane