Замыкания в PHP | Базовый курс PHP-7

  Рет қаралды 7,719

Andrievskii Andreii

Andrievskii Andreii

Күн бұрын

Пікірлер: 43
@Atikan37
@Atikan37 9 ай бұрын
Огромное спасибо за уроки!
@umay888
@umay888 4 жыл бұрын
спасибо, по сравнению с тремя другими роликами и двумя статьями именно у вас в ролике нашла понимание, что такое замыкание
@saluteismyname
@saluteismyname Жыл бұрын
Андрей, Вы очень хорошо объясняете, самый лучший курс у Вас)
@mugen31337
@mugen31337 2 жыл бұрын
Ну что, понеслась критика =)) 1. Зачем нужна такая длинная проверка??? Во-первых, вы уже определили тип аргумента в функции, и если вы ей передадите что-то отличное от типа данных array, вы получите ошибку. 2. Зачем проверять длину массива, если выражение if($some) даст абсолютно аналогичный результат. Вообще, объяснение замыкания в этом виде, как мне кажется, основано на замыканиях в JS. Это неправильно. Замыкание в PHP очень холиварная тема, и работает немного подругому. Раскрыта только одна особенность замыкания - хранение состояния. А как же отложенное исполнение? А как же рефлексия класса, например изменение поведения объекта через замыкание? Что такое замыкание в PHP вообще не раскрыто =((. Ничего не сказано про класс Closure, без которого вообще невозможно полностью разобраться в замыкании. Ничего не сказано про методы замыкания call и bindTo. Вообщем, если использовать замыкание как хранение состояния, вы не поймете зачем оно вам надо, и надо оно вам вообще. И тем более не разберетесь с многими важными функциями PHP, которые используют в своих аргументах замыкание, например array_map() или array_filter()... Ах да, если вы передадите внешнюю переменную по ссылке, то уже никакого хранения состояния в замыкании нет... Так зачем же оно, замыкание это? =)))
@mihaylo47
@mihaylo47 Жыл бұрын
спасиб тебе, мил человек, ни одного толкового объяснения на ютубе, а тут сразу столько примеров куда копать
@Мойканал-э7п
@Мойканал-э7п 6 ай бұрын
Потому что пример слизан из учебника Котерова
@АндрійСадовий-и6ш
@АндрійСадовий-и6ш 4 жыл бұрын
большое спасибо вам за ваш труд
@sskorostelev
@sskorostelev 4 жыл бұрын
Хорошо объяснил. Подписался
@developerno1820
@developerno1820 2 жыл бұрын
Для тех кто не справился с дз: $date1 = 1998; $func = function () use ($date1){ global $date2; function inn($year, $age){ $date2 = $year + $age; return $date2; } $date1 = $date2; return $date1; }; $func(); inn(1998,24); echo $date1;
@leoneqful
@leoneqful Жыл бұрын
Даже если убрать замыкание в этот примере, ничего не изменится. Задание странно написано.
@aleksandrsh3893
@aleksandrsh3893 Жыл бұрын
Спасибо за лекцию наброски для дз, кому нужно
@andrievskii
@andrievskii Жыл бұрын
// Создаем функцию changeBirthday, которая принимает переменную $birthday по ссылке (&$birthday) и новую дату рождения function changeBirthday(&$birthday, $newBirthYear) { $birthday = date('Y-m-d', strtotime("$newBirthYear-01-01")); } // Устанавливаем начальное значение переменной $birthday $birthday = '2000-01-01'; // Вычисляем новую дату рождения $age = 23; $newBirthYear = calculateYear1($birthday, $age); // Изменяем значение переменной $birthday changeBirthday($birthday, $newBirthYear); // Выводим итоговую дату рождения echo "Итоговая дата рождения после изменений: $birthday";
@aleksandrsh3893
@aleksandrsh3893 Жыл бұрын
function calculateYear1($birthYear, $age) //
@Petrov1ch1011
@Petrov1ch1011 3 жыл бұрын
Отличная подача!
@kolyananatolievich4724
@kolyananatolievich4724 4 жыл бұрын
А какие я выводы должен сделать в домашнем заданнии? В замыкании переменная не меняется, но если сменить переменную и выводить именно её, а не функцию то она меняется. Но это и без второй функции было понятно что переменная будет другая при выводе, а в функции из за замыкания та же будет, или я что то не правильно сделал КАКИЕ ВЫВООДЫ Я ДОЛЖЕН СДЕЛТЬ?
@andrievskii
@andrievskii 4 жыл бұрын
Именно такие 😉
@kolyananatolievich4724
@kolyananatolievich4724 4 жыл бұрын
@@andrievskii А ну тогда всё нормально. Спасибо )))
@BookwormYevgen
@BookwormYevgen 4 жыл бұрын
Какого объема хранится окружение(в чем это измеряется? строки,переменные? ) ДО и ПОСЛЕ функции? Замена глобальных переменных понятно - зачем использовать именно такую альтернативу? Почему нельзя использовать просто глобальные переменные?
@ИванИванов-б3у8н
@ИванИванов-б3у8н Жыл бұрын
Автор об этом не упомянул, к сожалению. Глобальные переменные использовать опасно, т.к. велика вероятность наделать трудноотлавлиемых ошибок. Если где-то в какой-то функции вы изменяете переменную (в т.ч. случайно, опечатавшись в названии, или вместо == написав =) вы можете об этом не узнать, или забыть. Т.е. после вызова функции могут поменяться какие-то глобальные переменные, которые (по изначальному замыслу) она вообще не должна использовать. Т.е. так делать можно, если очень осторожно, но, вообще говоря, это считается дурным тоном.
@СтаніславОлександрович-г9б
@СтаніславОлександрович-г9б 3 ай бұрын
​Это было в предыдущих уроках @@ИванИванов-б3у8н
@sasha3852
@sasha3852 4 жыл бұрын
хорошее объяснение, пример из php 7 в подлиннике?
@daanl88l
@daanl88l 4 жыл бұрын
Ну и вроде как советуют count в цикле не использовать. Это функция и она каждый раз считает количество элементов массива. count присваивают переменной (к примеру length) и уже переменную используют в цикле.
@shyma_grasious
@shyma_grasious 3 жыл бұрын
да верно
@VETaL855
@VETaL855 3 жыл бұрын
А в выводе можно сказать, что если переменную для замыкания изменить внутри функции то и она изменится?
@proszickiy
@proszickiy 4 жыл бұрын
Спасибо вам большое Андрей, за ваши уроки за ваш труд, я хочу посоветоваться , что дальше учить "CSS для профи" или "PHP"?
@arturvakula3410
@arturvakula3410 4 жыл бұрын
Будут ещё уроки по питону?
@MaksimBelokurov
@MaksimBelokurov 4 жыл бұрын
Спасибо за ваши уроки. Подскажите, а в замыканиях функции могут быть только анонимные или обычные тоже могут быть?
@Atikan37
@Atikan37 9 ай бұрын
Только анонимные
@Alexus1504
@Alexus1504 3 жыл бұрын
Всё ясно!
@Evgenii1996
@Evgenii1996 4 жыл бұрын
Андрей, скажи пжлст что думаешь о PHPStorm? Пользуешься ли ты им и стоит ли новичку в пхп его использовать P.S. Голос похож на меддисона особенно когда говоришь "Всем привет..." кажется сейчас скажешь "с вами меддисон" )))
@andrievskii
@andrievskii 4 жыл бұрын
PHPStorm хорошая IDE, но в том случае, если вы постоянно пишите код и хотите или уже стали php программистом. Она удобная, ускоряет написание, отладку кода.
@MyNeshika
@MyNeshika 4 жыл бұрын
NetBeans советую новичку, легче в настроке
@VETaL855
@VETaL855 3 жыл бұрын
Я вот не очень пойму, это правильный вывод в браузер? - "2021" Вот код:
@VETaL855
@VETaL855 3 жыл бұрын
$environment = 25; $nothing = function () use ($environment) { function inn ($years, $year) { $global = $year + $years; return $global; global $global; } $environment = $global; echo $environment; }; $nothing(); $years = 14; $year = 2007; echo inn($years, $year);
@ИванРыбалко-р5ь
@ИванРыбалко-р5ь 4 жыл бұрын
+
@grgvgrgv
@grgvgrgv 3 жыл бұрын
Тихий ужас. Видос 80% воды и пустой болтовни. Просто нелепость. Чувак, ты бы готовился хоть, читал по бумажке и потом монтировал удачные дубли. Такое видео должно быть 5 минут максимум с четким грамотным изложением. Это ко всем твоим "урокам" относится. А пока неуд.
@andrievskii
@andrievskii 3 жыл бұрын
Спасибо за комментарий))
@grgvgrgv
@grgvgrgv 3 жыл бұрын
@@andrievskii я серьезно ))) Делаешь хорошее дело, но не совсем правильно. Посмотри Алексея Земскова, например, он хоть по другой теме - хороший пример качественных видео. Успехов!
@s.ls.l1392
@s.ls.l1392 3 жыл бұрын
Андрей не обращай внимания, уроки очень классные благодаря тебе научился и понял многому, продолжай в том же духе
@tontontonic
@tontontonic Жыл бұрын
а как в js тут замкнуть нельзя? ну типа функция принимает аргументы и возвращает через ретерн другую функцию. а потом внешнюю функцию с аргументами записать в переменную и вызывать эту переменную как функцию, но уже с аргуменами для внутренней возвращаемой через ретерн ф-ии.
@andrievskii
@andrievskii Жыл бұрын
В PHP также можно создавать замыкания, используя анонимные функции (лямбда-функции) и функции обратного вызова (callback). Анонимные функции и функции обратного вызова в PHP позволяют создавать замыкания, которые сохраняют контекст и имеют доступ к переменным из внешней области видимости.
@mavvdies
@mavvdies Жыл бұрын
// task 1 $mess = 'Какой-то текст =)' . ''; $var_func = function ($num1, $num2) use ($mess) { return $mess . $num1 * $num2; }; echo $var_func(33, 5) . ''; // task 2 $age = '2004' . ''; $my_info = function($text) use ($age) { if ($age >= 2000) { echo $text . ' = ' . $age; } }; echo $my_info('some text'); // task 3 function box() { function info($year_ob, $age) { $add = $year_ob + $age; return $add; } } echo box(); echo info(2004, 19);
UTF-8 и mbstring в PHP | Базовый курс PHP-7
11:19
Андрей Андриевский
Рет қаралды 6 М.
Рекурсивные функции в PHP | Базовый курс PHP-7
27:00
Андрей Андриевский
Рет қаралды 9 М.
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Une nouvelle voiture pour Noël 🥹
00:28
Nicocapone
Рет қаралды 9 МЛН
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
Основы php Замыкания, callback функции
14:05
web - с нуля до профи
Рет қаралды 14 М.
JSОN-формат в PHP | Базовый курс PHP-7
16:23
Андрей Андриевский
Рет қаралды 8 М.
Сессии в PHP | Базовый курс PHP-7
18:16
Андрей Андриевский
Рет қаралды 18 М.
НТМL-форма и ее обработчик на PHP | Базовый курс PHP-7
25:50
Андрей Андриевский
Рет қаралды 8 М.
Как и почему умирают языки программирования
15:44
Степан Баранцев
Рет қаралды 13 М.
Массивы в PHP - часть 1 | Базовый курс PHP-7
19:18
Андрей Андриевский
Рет қаралды 12 М.