$b = $a+++$a;
12 отговора
434 прегледа
$b = $a+++$a;
Както винаги бях прав
това е равно на три
$a = 1;
$b = $a+++$a;
това е равно на четири
$a = 1;
$b = ++$a+$a;
Това е равно на две
$a = 1;
$b = $a+$a++;
И точно така трябва да си бъде!
БАба...
Ама баба не е жена, вие не знаете ли?
това е равно на три
$a = 1;
$b = $a+++$a;
това е равно на четири
$a = 1;
$b = ++$a+$a;
Това е равно на две
$a = 1;
$b = $a+$a++;
И точно така трябва да си бъде!
БАба...
Ама баба не е жена, вие не знаете ли?
$b = $a+++$a = &c;
Естественно:
Сега смени 1 с 10 и ще получиш нормални резултати - така и трябва да бъде...
Понеже не вдянах по какъв повот пишеш това - да не си прекалил със слънцето?

Сега смени 1 с 10 и ще получиш нормални резултати - така и трябва да бъде...
Понеже не вдянах по какъв повот пишеш това - да не си прекалил със слънцето?
Re: $b = $a+++$a;
аз така и не разбрах за какво става дума
-----------------------
гърбавия, ковчег ще го изправи
-----------------------
гърбавия, ковчег ще го изправи
ти пак не разбра: не две, а три!
Не бе Guru... Ти пак много пи и пак не разбра:
$a =
;
$b = $a+++$a;
echo $b;
Ще върне

а не

Ама баба не е жена, вие не знаете ли?
$a =
$b = $a+++$a;
echo $b;
Ще върне
а не
Ама баба не е жена, вие не знаете ли?
Re: $b = $a+++$a;
Ех добре. Аз твърдях, че е 4, щото се чудех дали да си поръчам 4-та бира 
Re: аргггхх
да бе,
и на мене тая асоциативност не ми стана много ясна във втория и третия пример
и на мене тая асоциативност не ми стана много ясна във втория и третия пример
недей
Силно нежелателно е да се използва инкрементиращ оператор в комбинация с други. Самият Анди Гутманс написа следното:
Like in most other programming languages you can't use post/pre
increment operators on a variable which is used more than once in an
expression. The result is undefined. We won't print out a warning (like
most other languages).
За повече подробности виж това: [линк]
Everything louder than everything else...
Like in most other programming languages you can't use post/pre
increment operators on a variable which is used more than once in an
expression. The result is undefined. We won't print out a warning (like
most other languages).
За повече подробности виж това: [линк]
Everything louder than everything else...
интересна главоблъсканица
аз го преписах това на С++
компилира се без проблеми (то там и менюто от ресторанта се компилира лесно) ама резултата е мааалко по-различен....
int b;
int a = 1;
b = a+++a; // това е 2
a = 1;
b = ++a+a; // това е 4
a = 1;
b = a+a++; // това е 2
разлика има само в първия израз, не знам, кое е по-правилно...на пръв поглед, реших че РНРто се е справило по-добре, но опита ми подсказва, че по-правилно от С++ нема ;-)
в хелпа (не че го четох задълбочено) не видях предупреждения, но ако се отчита това:
It is important to note that a postfix increment or decrement expression evaluates to the value of the expression prior to application of the respective operator. The increment or decrement operation occurs after the operand is evaluated. This issue arises only when the postfix increment or decrement operation occurs in the context of a larger expression.
излиза, че
b = a+++a;
трябва да е точно 2
[линк]
компилира се без проблеми (то там и менюто от ресторанта се компилира лесно) ама резултата е мааалко по-различен....
int b;
int a = 1;
b = a+++a; // това е 2
a = 1;
b = ++a+a; // това е 4
a = 1;
b = a+a++; // това е 2
разлика има само в първия израз, не знам, кое е по-правилно...на пръв поглед, реших че РНРто се е справило по-добре, но опита ми подсказва, че по-правилно от С++ нема ;-)
в хелпа (не че го четох задълбочено) не видях предупреждения, но ако се отчита това:
It is important to note that a postfix increment or decrement expression evaluates to the value of the expression prior to application of the respective operator. The increment or decrement operation occurs after the operand is evaluated. This issue arises only when the postfix increment or decrement operation occurs in the context of a larger expression.
излиза, че
b = a+++a;
трябва да е точно 2
[линк]
tє
А бе недей така, щото аз пък прочетох, че на C всеки път дава различен резултат в зависимост от компилатора, версията, оптимизацията, температурата на въздуха, атмосферното налягане, влажността и редица неизяснени фактори от органичната химия и приложната астрономия!
Просто правилото е инкрементация да не се използва заедно с други опирации, за да няма неочаквани резултати!
БАба...
P.S. но казусът си беше добър- признавам!
Ама баба не е жена, вие не знаете ли?
Просто правилото е инкрементация да не се използва заедно с други опирации, за да няма неочаквани резултати!
БАба...
P.S. но казусът си беше добър- признавам!
Ама баба не е жена, вие не знаете ли?
Е те тва как стана?
А бе недей така, щото аз пък прочетох, че на C всеки път дава различен резултат в зависимост от компилатора, версията, оптимизацията, температурата на въздуха, атмосферното налягане, влажността и редица неизяснени фактори от органичната химия и приложната астрономия!
Просто правилото е инкрементация да не се използва заедно с други опирации, за да няма неочаквани резултати!
БАба...
P.S. но казусът си беше добър- признавам!
Ама баба не е жена, вие не знаете ли?
Просто правилото е инкрементация да не се използва заедно с други опирации, за да няма неочаквани резултати!
БАба...
P.S. но казусът си беше добър- признавам!
Ама баба не е жена, вие не знаете ли?