$a = 2;
$b = 3;
echo $c = $a+$b;
я одного не пойму, почему если до оператора echo яне задавал переменную $c вообще, то почему он высветил резльтат ее? как по мне так должно было быть так:
$a = 2;
$b = 3;
$c = $a+$b;
echo $c = $a+$b;
Другие языки программирования и технологии
программисты, помогите начинающему в самом простом примере с переменными в PHP
Все ответы правдив на половину - сейчас я вам представлю факты по чему нет ошибки !
У каждого операнда есть свой личный приоритет скажем приоритет умножения выше чем приоритет сложения или вычетания !
когда ты пишешь строку
echo $c = $a+$b;
компилятор ее разлаживает на действия по приоритету - скажу что приоритет присвоения (=) стоит на самом последнем месте а сложение стоит выше вот копилятор и начинает с него
$a+$b - далее копилятор ищет следующее действо по приоритету нежи чем сложение и находит
$c =
тоесть нужно создать отсек памяти и присвоить ему результат - тут то и создается переменная (о выводе компилятор еще ничего не подозревает на тот момент)
когда компилятор сделал присвоение то обработка продолжается и он натыкается на
echo $c
ну тут все понятно - так что это сделано просто для удобства записи и читабельности кода
Ах да в php не компелятор все проверяет а серверная программа - но принцип везде один !
У каждого операнда есть свой личный приоритет скажем приоритет умножения выше чем приоритет сложения или вычетания !
когда ты пишешь строку
echo $c = $a+$b;
компилятор ее разлаживает на действия по приоритету - скажу что приоритет присвоения (=) стоит на самом последнем месте а сложение стоит выше вот копилятор и начинает с него
$a+$b - далее копилятор ищет следующее действо по приоритету нежи чем сложение и находит
$c =
тоесть нужно создать отсек памяти и присвоить ему результат - тут то и создается переменная (о выводе компилятор еще ничего не подозревает на тот момент)
когда компилятор сделал присвоение то обработка продолжается и он натыкается на
echo $c
ну тут все понятно - так что это сделано просто для удобства записи и читабельности кода
Ах да в php не компелятор все проверяет а серверная программа - но принцип везде один !
Константин Якушев
Компилятор преобразует человеку понятный код в самостоятельный машинный код. PHP - интерпритатор. Т. е. смотрит, че написано, и принимает решение, чего делать. Трактовать его работу "по принципу" компилятора, как минимум, не корректно.
Если вы написали $c - это и есть объявление переменной. Где бы вы это ни написали (ну, только в кавычках если, не сработает) .
Если написали $c = чему-то - вы ей это что-то присвоили.
Какая разница, где? После echo все работает так же, как и до него, ежели не в кавычках.
Если написали $c = чему-то - вы ей это что-то присвоили.
Какая разница, где? После echo все работает так же, как и до него, ежели не в кавычках.
В php явно задавать переменные не обязательно. Первое упоминание переменной в присвоениях и есть ее объявление.
А вот если напишите:
if ($a > $c) echo "Пипец рулю";
то выдаст ошибку
А вот если напишите:
if ($a > $c) echo "Пипец рулю";
то выдаст ошибку
Zamiq Shireliyev
http://writecodeonline.com/php/
проверил, не выдало. только добавил точку с запятой
проверил, не выдало. только добавил точку с запятой
Похожие вопросы
- Задачка для программистов. Поможете? Для программеров это проще простого (я знаю это), а вот я чёто не понимаю ваще.
- Паскаль, не трудная задачка, помогите начинающему программисту!
- Помогите начинающему программисту.
- Помогите начинающему программисту, с чего начать?
- Помогите начинающему программисту!!!
- Помогите начинающему программисту!!!
- Помогите начинающему программисту.
- Начинающий программист помогите
- Простой для знающих вопросик по PHP.
- Программирование. Помогите разобраться с направлениями (Ruby, Java, JavaScript, С++, Python, PHP, QA)