var=(condition)?(val1):(val2);

7 отговора 287 прегледа
#1

var=(condition)?(val1):(val2);

нещо в последно време и аз не разбирам какво става

$var1=0;
$var2=($var1)?("yes"):("no");

на един сървър работи без проблеми, докато върху друг работи само:

$var1=0;
$var2=($var1==0)?("yes"):("no");


някой има ли наблюдения за тези неща ?

-----------------------
гърбавия - ковчег ще го изправи

Редактирано от Bълk на

Отговор
в отговор на Bълk #2

Re: var=(condition)?(val1):(val2);

ами първото е false, пък второто е true


виж [линк]

Отговор
в отговор на AcidMemory #3

Re: var=(condition)?(val1):(val2);

ама не, имам предвид друго, че пак се налага посочване на равенство даже и ако е единица

-----------------------
гърбавия - ковчег ще го изправи
Отговор
в отговор на Bълk #4

Re: var=(condition)?(val1):(val2);

Я виж дали нямаш някой еррор или нотис ?

Пусни му най отгоре еррор репортинга на е-алл

Предпогам че е нещо от кастването на инт към булеан

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на Bълk #5

Re: var=(condition)?(val1):(val2);

а какво ти дава - според мен първото требе ти да де no, а второто yes

какво значи не работи ;-))

Отговор
в отговор на ro6avia #6

Re: var=(condition)?(val1):(val2);

няма нотиси... на е-алл съм... вече започвам да се мисля за идиот

-----------------------
гърбавия - ковчег ще го изправи
Отговор
в отговор на phpGuru #7

Re: var=(condition)?(val1):(val2);

пример - тригер

$var=($var)?(0):(1);

не е ясно защо на един сървър резултата винаги е 0 независимо от значение на входа, но ако $var=($var==1)?(0):(1); - няма проблеми.

и е много интересно защото на друга машина и двата варианта си работят без проблеми.

първата машина е червената шапчица с 4.1.2, другата е фрибсд с 4.3.нещо си. Същата простотия я забелязвам и на домашната ми машина която е 2 кила с 4.3.нещо си...

-----------------------
гърбавия - ковчег ще го изправи
Отговор
в отговор на Bълk #8

IMHO

IMHO или ($var) == (isset($var)) или ($var) не значи нищо, в зависимост от версията
аз често се чудя защо if($var=1) хем не работи, хем не изкарва грешка - а то просто $var си става 1... LOL

Отговор