Тёмный

Основы php Математические операторы, приоритет операторов 

web - с нуля до профи
Подписаться 9 тыс.
Просмотров 14 тыс.
50% 1

В этом видео мы с вами познакомимся с понятием операторов в языке php, узнаем как использовать математические операторы, а так же познакомимся с понятием приоритета операторов. Онлайн обучение от Web c 0 до профи:
web-q.site/ser...
Разработка сайта от WEBQ
web-q.site/ser...
Чат тех.помощи по курсу в TELERGAM: t.me/joinchat/...
Все видео по ссылке • Интернет магазин с нул...
_____________
Информация для тех, кто хочет поддержать канал:
Стать спонсором: / @webq № карты для прямых переводов: 4469 1573 3515 6943
Спасибо что Вы с нами!!! Резервный канал на Яндекс Дзен zen.yandex.ru/...

Опубликовано:

 

9 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 60   
@WD40rus
@WD40rus 2 месяца назад
Пришел к Вам на канал после говнокурсов... Нет слов. За 3 видео узнал больше, чем за 2 месяца говнокурсов. Теперь Ваши видео + техдокументация и практика практика...
@user-ix9sw4nx9u
@user-ix9sw4nx9u 3 года назад
самое лучшее что я видел из уроков, спасибо тебе
@webQ
@webQ 3 года назад
И Вам спасибо за хороший отзыв
@user-jx8cc3ox7x
@user-jx8cc3ox7x Год назад
пишу для поддержки канала и автора. спасибо за труд
@20mlnmoshi
@20mlnmoshi Год назад
Шяс блин выучу php за 1 день )))
@user-wf6ol1fg1i
@user-wf6ol1fg1i Год назад
Большое спасибо. По поводу формулы из 1 делает 7 , вроде понял, но не понял. Пока не задался в итоге получить другое число и понять ( не без примера кто где что в памяти держит ) так и не понял бы . php учу вот пару дней по вашим урокам. Но вы правы пока сам не попробуешь а не просто скопируешь - оно получится но не поймешь до конца по чему
@user-sz8yv3ig1x
@user-sz8yv3ig1x 5 месяцев назад
Спасибо за урок! Классный пример ))) Люблю такие
@webQ
@webQ 5 месяцев назад
Надеюсь что и более сложные темы смог донести, более менее, понятно
@user-gn8om4bl8n
@user-gn8om4bl8n 2 года назад
Спасибо за уроки , скачал ваш плейлист смотрю в оффлайне
@valeriiyevdochenko8905
@valeriiyevdochenko8905 2 года назад
Не знал, что у += низкий приоритет. Мелочь, но приятно. Спасибо за урок.
@AndresKaen
@AndresKaen 2 года назад
Спасибо
@supermel531
@supermel531 2 года назад
Thank you very much!
@webQ
@webQ 2 года назад
Nichts zu danken)))))
@A1_TR_812
@A1_TR_812 Год назад
Большое спасибо за ваш труд и ваши объяснения!
@xmelsky
@xmelsky 3 года назад
т.е. можно свести к тому, что $d++ + ++$d; читается как: сначала читаем $d и подставляем в выражение 1, затем изменяем на 1 (теперь $d = 2) "плюс" сначала изменяем $d на 1 (теперь $d = 3), затем читаем и подставляем в выражение. -> получим запись после подстановок $d += 1 + 3 и помним, что $d уже 3. значит имеем 3 += 1 + 3 что в итоге даст 7
@user-qq3hs3np5n
@user-qq3hs3np5n 3 года назад
Урок супер, спасибо)
@user-ff3lc1et3u
@user-ff3lc1et3u 3 года назад
Все ясно и лаконично.
@user-bk7tx6vj7h
@user-bk7tx6vj7h 10 месяцев назад
👍👑
@plutoalf5881
@plutoalf5881 4 года назад
Здравствуйте, Денис. Хорошо объясняете. Спасибо. Но в сложном примере (с инкрементом) немного напутали (это мое мнение): первый $d++ равен 2; ++$d равен 3; их сумма равна 5; теперь самая первая переменная $d равна 2 (так как "единица" повысилась в первом действии. Таким образом сумма =7
@theholdfingersteam2399
@theholdfingersteam2399 4 года назад
Да тут вообще х*йня какая то выходит чесс слово, не понимаю. Даже если взять просто пример $d++ + ++$d; то равно будет 3. Добавляется всего 2. И без разницы равно ли $d=10 то выйдет 12, даже если $d= 500 выйдет 502. Почему же не выходит 22 или 1002?? Думал как обычно пройдусь по основам php не тут то было. ------ Теперь возьмем пример автора, $d += $d++ + ++$d; если вместо $d=1 поставить $d=10 то выходит 34. А если теперь поставить пример $d += $d++ + $d++; выходит 33. Видимо автор прав с тем что цифра уходит в память и потом в момент (++d) начинает считать. Кароче х*й его знает, мне тут проект делать а я с этим сижу))
@dimonsan2504
@dimonsan2504 4 года назад
Логично
@dasman6163
@dasman6163 3 года назад
Пересмотрите внимательно, он правильно все объяснил. Первый $d++(постфиксная форма) равен 1, т.к. сначала идет подставление 1 вместо $d и только потом увеличение, но это увеличение не возвращается обратно к переменной, код идет дальше(направо) и поэтому значение первой переменной равно 1. Второй ++$d(префиксная форма) равен 3, т.к. до этой второй переменной интерпретатор увеличил ее значение до 2 и здесь это значение сразу увеличивается до 3(т.к. это префиксная форма) и мы получаем 1 + 3 = 4. Последнее значение переменной $d = 3, поэтому запись $d +=4(что равнозначно $d = $d +4) возвращает 7.
@WeallHWT
@WeallHWT 3 года назад
​@@dasman6163 Тысяча чертей!!! Лайк автору ​ @dasman 616 , объяснил доходчивее чем автор видео! Двигаем в топы!
@denisrich4851
@denisrich4851 3 года назад
да он правильно разъяснил как работает интерпретатор, а так респект , нормально обьясняет
@user-ie6fl2ti5r
@user-ie6fl2ti5r 3 года назад
Спасибо за урок !!
@g_a_m_b_e_t_t_o_r8920
@g_a_m_b_e_t_t_o_r8920 3 года назад
супер!!)) интересный урок ! кстати в js ответ будет 5))) Спасибо за урок !!
@webQ
@webQ 3 года назад
Да, абсолютно верно и Вы большой молодец если Вы это знали, не прогнали для галочки,или если прогнали, но поняли почему))))
@bistrec
@bistrec 4 года назад
Добил 100 лайков :)
@webQ
@webQ 4 года назад
Спасибо большое
@bistrec
@bistrec 4 года назад
@@webQ всегда рад помочь коллеге :) хоть мне и 13 лет
@webQ
@webQ 4 года назад
@@bistrec возраст - не показатель человека и его знаний
@bistrec
@bistrec 4 года назад
@@webQ я знаю:) у меня друг есть, который больше меня в программировании знает, но ему 13 лет. Блин ему и заказчики уже пишут, а мне никто не пишет и найти не могу :(
@webQ
@webQ 4 года назад
@@bistrec всему свое время. Пока есть возможность, поработайте на свои знания и навыки. Заказчики придут, когда придет имя. А имя придет, когда придут знания. Лучше потерять лишний год на поднятие своего уровня, чем пол жизни биться на фриланс биржах за копеечные проекты на wordpress
@leoneqful
@leoneqful Год назад
Еще допишу, что гораздо правильнее объяснить префиксную и постфиксну форму так: $d = 1; echo $d++; //будет 1, так первее идет возврат значения $d, а потом увеличение происходит, которое сохраняется в памяти в начальной переменной echo $d; //а вот тут уже будет 2 при обращении к переменной echo ++$d; //будет 2, так как увеличение происходит до возврата значения echo $d // будет 2 снова Мож кому пригодится, так лучше объяснено. Вообще подробно просто по инфе о Операторы инкремента и декремента
@VakaramGolang
@VakaramGolang Год назад
приоритет серьёзный в php
@Hello_money_666
@Hello_money_666 4 года назад
Угарнул с примера)
@xmelsky
@xmelsky 3 года назад
преинкремент (сначала изменяем переменную, потом читаем) лучше всего было объяснить на примере: $d = 1; $c = ++$d; суть этого оператора, что после этой строчки $c имеет такое же значение как и $d, т.е. со значением 2. другими словами, прежде чем интерпретатору получить значение для $c он должен его вычислить для $d. В свою очередь, постинкремент (сначала читаем переменную, затем изменяем) делает так, что $c будет иметь значение 1, тогда как $d будет 2. Т.е. сначала читает для $c значение из $d, затем изменяет $d. $d = 1; $c = $d++; т.е. тут мы получим $c со значением 1. Можно еще иначе, кому все еще не понятно. порядок интерпретации выражения -> слева направо. представим два плюса ++ как выражение ($d=$d+1). И теперь мы можем записать выражение иначе: $c = ($d=$d+1)$d; - т.е. интерпретатор сначала должен выполнить скобки (это не валидная запись, просто для понимания), и лишь потом взять ЗНАЧЕНИЕ переменной $d, которое к этому моменту уже 2, значит в $c пойдет 2. и второй пример, $c = $d($d=$d+1); - т.е. интерпретатор уже может взять ЗНАЧЕНИЕ переменной $d, которое к этому моменту еще 1 (напомню это второй пример), и лишь затем проведет операцию в скобках, т.е. увеличит значение $d. именно поэтому во втором примере $c будет 1.
@webQ
@webQ 3 года назад
А, ну, наверное, Ваше объяснение именно понятно... Я не понял, но, наверное, новичкам зайдет.... Надеюсь...
@advokats086
@advokats086 4 года назад
ПОЧЕМУ В ПРОДАКШЕНЕ НЕ ИСПОЛЬЗУЕТСЯ ОПИСАНОЕ ВЫРАЖЕНИЕ(ИНКРЕМЕНТ + ДЕКРЕМЕНТ) ? ГДЕ ВОЗМОЖНО ПРИМЕНИТЬ ТАКОЕ ВЫРАЖЕНИЕ (ТЕОРЕТИЧЕСКИ). НУ К ПРИМЕРУ ДАЖЕ ЕСЛИ ВЗЯТЬ ДРУГОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ?
@webQ
@webQ 4 года назад
Не инкремент плюс дикремент, а выражения с неявным приоритетом операторов. В связи с тем что сайт может обслуживать программист и сильный программист, но который, в качестве профилирующего языка будет знать другой язык и с другим приоритетом операторов
@mildewlight
@mildewlight 4 года назад
Здравствуйте. Из видео получается, что ниже приведенные примеры идентичны. Но в первом случае результат 7, а во втором 6. $d += $d++ + ++$d; $d = $d + $d++ + ++$d;
@webQ
@webQ 4 года назад
потому что разный приоритет выполнения операций. Первый пример в javascript вообще ответ 5 даст))))
@mildewlight
@mildewlight 4 года назад
@@webQ, спасибо. Попробую разобраться.
@mildewlight
@mildewlight 4 года назад
@@webQ, как же описать для легкого понимания приведенные примеры, чтобы можно понять как что работает?
@mildewlight
@mildewlight 4 года назад
@@webQ, фу-у-у, разобрался. По-своему конечно, но работает. В первом случае (не забываем, что пример с $d = 1), я считаю так: приоритет у меня после знака = и получается что 1+1=2. Далее я решил, что PHP присвоил результат 2 всем 3-м переменным $d, потому что они все одинаковые, то есть '$d'. Потом я умножил 2 на 3, потому что написанных у нас переменных $d 3 шт., а одна зашифрована, сокращена и вот этой он не присваивает 2, а остается 1. И как итог - 7. То есть 2*3+1. И эта зашифрованная всегда остается 1-й, даже, если присвоить переменной $d 32. Дальше я вместо 1 присвоил 3 и посчитал по тому же принципу и угадал - 13. Ведь 3+1=4. Теперь все три переменные становятся 4-ми. Умножаем на три получаем 12 и плюсуем зашифрованную 1. Далее присвоил переменной -1. Результат конечно же -1. Ведь -1+1=0. 0*3 и плюсуем 1. Второй вариант проще. Приоритет после первого плюса. С третьей переменной считаю. К примеру, переменной присвоил 2. Итак, 2+1=3. И дальше просто * на три. Переменную до знака = не трогаю. И результат - 9. Смешно конечно как я считаю, но главное могу понять, каким может быть результат.
@user-so4vm2hx3s
@user-so4vm2hx3s 3 года назад
Разобрался со вторым случаем: Для наглядности запишу в разные переменные результат = x + y + z php сначала рассматривает первую часть x + y ($d + $d++) из этого выражения сначала $d++ ( y = 1, но $d уже становится 2) из этого выражения следует: $d + 1 (где $d = 2) значит (2 + 1) (x + y) Дальше рассматривается z (++$d) $d = 2 , значит z = 3 результат = 2 + 1 + 3 = 6
@СергейПресняков-о4р
А тут есть операторы "целочисленное деление" и "остаток от деления"?
@webQ
@webQ 4 года назад
Остаток от деления, как и во всех языках, это знак %, а, простите, в каком то языке есть оператор целочисленного деления? На сколько мне известно есть функции округления, но не операторы
@СергейПресняков-о4р
@@webQ Ну в python есть //, вроде даже в С такое есть, давно его пробовал, не берусь наверняка утверждать.
@webQ
@webQ 4 года назад
@@СергейПресняков-о4р да, посмотрел сейчас, действительно в python есть такой оператор, в php из коробки его нет. Но достаточно будет привести результат к целочисленному типу и тогда дробная часть отбросится или можно округлить в меньшую сторону при помощи функции floor
@leoneqful
@leoneqful Год назад
Мож пригодится кому, а то во время объяснений не совсем понял, додумывал. Посмотрев пример с d++ я понял какая это дичь, это в примере не тоже самое, что просто d+1. Не сразу догнал, то вывод сделал, что когда $d = 1; $d++; var_dump($d); Будет равен 2, но выше в самой строчке значение не обновляется, там будет 1. $++d; var_dump($d); Тут же в итоге будет тоже 2, но выше в строчке он обновляется на месте и там будет 2. И поэтому: $d = 1; (2) (3) $d = $d + ($d++ + ++$d); (упростил его) В общем при первом действии в скобках будет 2 и верхняя переменная обновится, но в строчке она не обновилась и там 1 остался, а далее второе слагаемое наоборот в строчке обновится, взял 2 как начальное значение, увеличим на 1 и выйдет 3 и на месте обновился и $d = 3 стало выше. И выйдет 3 + (1+3) = 7. Так если изменить пример: $d = $d + (++$d + ++$d); То тут всё будет обновлятся в строке прям, 3 + (2 + 3) = 8 Так и $d = $d + ($d++ + $d++); 3 + (1 + 2) = 6 Мож кому пригодится, чтоб понять, но я честно сам не понял на кой в этом разбираться. Но так проще использовать именно ++d, так просто понятнее, что оно обновляется на месте и ведет себя как d+1
@KuKu_RuKu88
@KuKu_RuKu88 4 года назад
Спасибо
@webQ
@webQ 4 года назад
Пожалуйста