Долгое время не понимал данную возможность языка пока не обратился к языку Си и не узнал об указателях. Сразу стало понятно откуда в PHP взялась передача по ссылке.
В свое время, крайне не хватало таких разборов) пришлось самому спотыкаться о все подводные камни, или сидеть у компа проводя эксперименты, типа: а что будет если написать так, смотреть на результат и анализировать как работают те или иные стандартные функции (методы), сколько времени потеряно, чтобы понимать механику языка, а это главное! зная механику - в результате, ты получаешь именно то, что ожидаешь получить, и если результат тебя не устроил - легко дебажить, осознавая в каком месте ты мог получить логическую ошибку (которые самые сложные ошибки, т.к. интерпритатор на них не ругается, с его точки зрения все работает корректно) Лайк + подписка) жду ООП))
Не понял, почему вывод элементов из второго цикла с ключом 0, 1, 2 соответствуют выводу элементов первого цикла, а элемент 3 остался равным элементу 2. Ведь, в предыдущем цикле выполнилось умножение значения для элемента 4
Не совсем понятно, почему в foreach при передаче по ссылке последнее значение изменилось на 6. По идее, раз значение в $value осталось, оно должно примириться первому $value в новом цикле foreach. Но никак не последнему
Здесь такие основные принципы: нужно держать в голове, что во втором проходе по массиву, так же, как и в первом, мы работаем не с копией массива, а со ссылкой на массив. Точнее, после первого прохода $value всегда будет ссылаться на последний элемент массива, и - важно - менять его во втором проходе. Можно заметить, что во втором проходе последний элемент массива в любой итерации становится равен текущему значению элемента массива. Вот отсюда и получается - в предпоследней итерации последнему элементу уже присвоилось значение предпоследнего элемента, и вот оно-то и выводится. Резюмируя - во втором проходе массив, который обрабатываем постоянно изменяется!
@@NIKA-pi1cl типо во втором foreatch у нас всё ссылается на последний элемент массива. И простой перебор автоматом присваивает значения последниму элементу?
Вы сказали что в foreach создаётся копия массива, не значит ли это что при создании копии, значения в массиве будут иметь разные ссылки в памяти. Получается foreach создал копию массива, значит ссылки на значения внутри массива в памяти будут уже другими, и &$value будет иметь ссылки на значения созданого массива циклом foreach. Или я что-то не правильно понял, может кто поможет.
Здравствуйте, сделайте пожалуйста урок, по доставке электронного товара в "автоматическом режиме" сразу после оплаты. Еще бы было приятно, если бы ссылка на электронный товар была действительна (рабочая) 1-3 суток или ограничение на количество скачивания. Уже которую неделю мучаюсь с этим вопросом... Надеюсь на вашу помощь... Например: ссылка на товар будет доступна после оплаты 1. Максимально допустимое количество попыток скачать файл электронного товара: 5 попыток 2. Количество часов, на протяжении которых будут действительны ссылки на скачивание проданного товара с типом "файл" до первой попытки его загрузить: 24 часа 3. Количество минут, начиная с момента первой загрузки, в течении которых ссылка будет ещё активна: 30 минут
Отличное видео, очень полезная информация. Ждём продолжения по созданию фреймворка
Пожалуйста. Вот по созданию фреймворка - и хочется, и колется.... продолжать можно и есть что, но особой отдачи не увидел, поэтому пока в раздумиях))
@@matroskin978 Я за продожение . Кто за ставим лайк
Долгое время не понимал данную возможность языка пока не обратился к языку Си и не узнал об указателях. Сразу стало понятно откуда в PHP взялась передача по ссылке.
В свое время, крайне не хватало таких разборов) пришлось самому спотыкаться о все подводные камни, или сидеть у компа проводя эксперименты, типа: а что будет если написать так, смотреть на результат и анализировать как работают те или иные стандартные функции (методы), сколько времени потеряно, чтобы понимать механику языка, а это главное! зная механику - в результате, ты получаешь именно то, что ожидаешь получить, и если результат тебя не устроил - легко дебажить, осознавая в каком месте ты мог получить логическую ошибку (которые самые сложные ошибки, т.к. интерпритатор на них не ругается, с его точки зрения все работает корректно)
Лайк + подписка) жду ООП))
спасибо. все понятно
Не понял, почему вывод элементов из второго цикла с ключом 0, 1, 2 соответствуют выводу элементов первого цикла, а элемент 3 остался равным элементу 2. Ведь, в предыдущем цикле выполнилось умножение значения для элемента 4
1) Про глобальные переменные лучше не говорить, это совсем другое.
2) Ничего не было сказано про возврат по ссылке.
молодец. Делай еще красава. Лайк
Подскажите стоит ли применять в работе и ? Какие минусы у них есть ? Очень важно ваше профессиональное мнение !
Не совсем понятно, почему в foreach при передаче по ссылке последнее значение изменилось на 6. По идее, раз значение в $value осталось, оно должно примириться первому $value в новом цикле foreach. Но никак не последнему
Здесь такие основные принципы: нужно держать в голове, что во втором проходе по массиву, так же, как и в первом, мы работаем не с копией массива, а со ссылкой на массив. Точнее, после первого прохода $value всегда будет ссылаться на последний элемент массива, и - важно - менять его во втором проходе. Можно заметить, что во втором проходе последний элемент массива в любой итерации становится равен текущему значению элемента массива. Вот отсюда и получается - в предпоследней итерации последнему элементу уже присвоилось значение предпоследнего элемента, и вот оно-то и выводится. Резюмируя - во втором проходе массив, который обрабатываем постоянно изменяется!
@@NIKA-pi1cl ничего не понял)
@@NIKA-pi1cl типо во втором foreatch у нас всё ссылается на последний элемент массива.
И простой перебор автоматом присваивает значения последниму элементу?
Php всегда передает аргумент по ссылке, новый объект создаётся при попытке изменить аргумент, если явно не указано сохранить ссылку (&)
Очень понятно и хорошо объяснено, спасибо за урок!
Пожалуйста!
Вы сказали что в foreach создаётся копия массива, не значит ли это что при создании копии, значения в массиве будут иметь разные ссылки в памяти. Получается foreach создал копию массива, значит ссылки на значения внутри массива в памяти будут уже другими, и &$value будет иметь ссылки на значения созданого массива циклом foreach. Или я что-то не правильно понял, может кто поможет.
Интересное видео)
Очень полезно. Спс!
Пожалуйста ;)
Здравствуйте, сделайте пожалуйста урок, по доставке электронного товара в "автоматическом режиме" сразу после оплаты. Еще бы было приятно, если бы ссылка на электронный товар была действительна (рабочая) 1-3 суток или ограничение на количество скачивания. Уже которую неделю мучаюсь с этим вопросом... Надеюсь на вашу помощь...
Например: ссылка на товар будет доступна после оплаты
1. Максимально допустимое количество попыток скачать файл электронного товара: 5 попыток
2. Количество часов, на протяжении которых будут действительны ссылки на скачивание проданного товара с типом "файл" до первой попытки его загрузить: 24 часа
3. Количество минут, начиная с момента первой загрузки, в течении которых ссылка будет ещё активна: 30 минут
А как называется дополнение для мозилы, чтобы php код отображался так же красиво ?)
Это devtools, а не дополнение
Жаль, что последний способ не рассмотрели.
Есть ли сайты для изучения пхп?
python.org в помощь 😉
@@topsecret9174 это же не PHP а Python
То чувство когда люди начинают программирование учить не с с++. Оттуда и вопросы такие про ссылки, спасибо за видео. Повторение мать учения
Пожалуйста)