Основы php Замыкания, callback функции

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

Комментарии • 71

  • @Alien_Life_Form
    @Alien_Life_Form Год назад +2

    Короче изучаю язык php правда с нуля.
    Благодарен за эти уроки, это реально лучшее на Ютубе.
    Короче такая методика. Сначала я смотрю и пытаюсь понять, жёстко туплю.
    Потом начинаю вслух читать всё что делает автор, соблюдая все все все термины строго!
    Потом пишу с ним код и когда пишу снова в слух диктую себе что я пишу и зачем мне это.
    Короче дрочу себя так...
    На следующий день просыпаюсь и пересматриваю эти пару уроков заново попутно диктуя вслух что делает автор и пересматриваю свой код!
    Соблюдаю строго "хороший тон" коддинга, и стараюсь называть строго всё терминами как оно есть.. названия переменным, функциям даю исключительно свои 6а интуитивном понимании чтобы было.
    И вот то приятное чувство когда ты не понимал, не понимал, а потом как понял)))) приходит.
    После этого изучаешь ещё что то и время от времени можно пересматривать старые материалы.
    На мой взгляд очень важно в первую очередь изучить синтаксис языка, "правописание" чтобы это само шло изнутри. Потом уже можно будет на этом языке писать романы свои)))) в вот тут уже мышление дай бог у меня замечательное😁
    Спасибо за видео.
    Ах да, иногда что то специально гуглю, смотрю пересматриваю и очень рекомендую Chat GPT вообще помогает понять некоторые вещи)))
    Нейросети тоже огромный низкий поклон 😁

  • @justoleg6001
    @justoleg6001 4 года назад +15

    У меня бомбило когда изучал JS от этой фигни потому что было вообще не понятно зачем так пишут, ещё сгорел стул на обработке событий, надеюсь у вас на канале будет раскрыта эта тема, потому что для меня как человека, который начинал программировать с С++, JS вообще язык мягко говоря не однозначный и вроде он необходим, но некоторые вещи просто когнитивный диссонанс вызывают. Фронтендеры в своём пузыре живут, то что для них само-собой разумеющееся, для людей типа меня "какая-то срань" и смертный грех, хочется всё-таки понять почему экосистему JS и как он работает именно на принципиальном уровне. После этого видео кое что понял, теперь хочется разобраться до конца. Спасибо.

  • @user-qg5uh6vf1v
    @user-qg5uh6vf1v Год назад +2

    Блин, классно вещаешь! Спасибо большое, будто на классную пару сгонял

  • @user-ge1ot9jn9p
    @user-ge1ot9jn9p Год назад +1

    Спасибо за отличную подачу уроков!

  • @mexvision-3556
    @mexvision-3556 2 года назад +1

    бляяяя, я чесно не мог целый день вдуплить что к чему, в чем смысл и суть. Спасибо. Вот почему это именно ЗАМЫКАНИЕ. Спасибо. Лайк и подписка оформлена.

    • @webQ
      @webQ  2 года назад +1

      Я рад что Вам стало понятно. Спасибо за комментарий и подписку

  • @invgreat5608
    @invgreat5608 Год назад +2

    Очень хорошо. Спасибо!

  • @KickFuel
    @KickFuel 4 года назад +3

    Определенно лайк и подписка!

  • @utkirkurbanov8241
    @utkirkurbanov8241 Год назад +1

    Просто супер🙂👍

  • @user-zd3pn9jf1m
    @user-zd3pn9jf1m 4 года назад +2

    Спасибо большое! Очень интересные уроки!

  • @ryantodd6733
    @ryantodd6733 3 года назад +1

    Спасибо за уроки, все предельно понятно.

    • @webQ
      @webQ  3 года назад

      И Вам спасибо за отзыв, Максим

  • @user-pb2hf8cy8m
    @user-pb2hf8cy8m Год назад +2

    Теперь понятно

  • @anatoliiilescu839
    @anatoliiilescu839 4 года назад +2

    спасибо вам за ваш труд!

    • @webQ
      @webQ  4 года назад

      ))))) ну в этих видео не только мой труд, но и Ваш, так что благодарность здесь обоюдная

  • @user-qq3hs3np5n
    @user-qq3hs3np5n 3 года назад

    Спасибо за урок!!!

  • @AndresKaen
    @AndresKaen 2 года назад +1

    Замыкания понял. А вот с callback сложновато для меня. Я их поэтому стараюсь обходить стороной пока. Спасибо за урок

    • @webQ
      @webQ  2 года назад +1

      Колбэки понять нужно. На фронтенде они очень понадобятся, а суть у них и в рнр и в js одинаковая

  • @user-se4dk3fh8r
    @user-se4dk3fh8r 3 года назад +1

    super!!!

  • @yevhenturovets6430
    @yevhenturovets6430 4 года назад +1

    Спасибо огромное, полностью нашел ответ на свой вопрос!

    • @webQ
      @webQ  4 года назад

      Я рад тому что смог помочь

  • @safara_umarov
    @safara_umarov 4 года назад +1

    Спасибо большое очень понятно

  • @andrewnikolaev4299
    @andrewnikolaev4299 4 года назад +4

    СПАСИБО за труды!!! Все отлично, есть некоторые сложности в понимании: "передача функции по ссылке...".

    • @webQ
      @webQ  4 года назад

      Что за сложности?

    • @andrewnikolaev4299
      @andrewnikolaev4299 4 года назад

      @@webQ спасибо за интерес...посидел над этим часик...теперь всё устаканилось в голове.

    • @safara_umarov
      @safara_umarov 4 года назад +1

      @@webQ все очень понятно до этого я не видел такой понятный урок:)

  • @Nechaiden
    @Nechaiden 3 года назад

    в топ!

    • @webQ
      @webQ  3 года назад

      Спасибо, тёска))))

  • @user-nc7zt9rj9e
    @user-nc7zt9rj9e 4 года назад +4

    так что такое замыкание понятно. А вот то что написали я запутался и не понял. Мы переменной $db присваиваем как значение функцию userConnect параметром которой она является?? Объясните попроще если можно. И почему стоят троеточие перед Машей и Петей.

    • @AntonReut
      @AntonReut 4 года назад +2

      Функция userConnect стала Объектом с одним полем $db и МЕТОДОМ __invoke который позволяет использовать Объект как Функцию.
      class DB {

      public $db = 'newBase';

      public function __invoke($user){
      echo $user . 'подключился к базе' . $db;
      }

      }

    • @user-ms4ri7ee9p
      @user-ms4ri7ee9p 3 года назад +3

      Смотри в чём суть - $db, который вызывает функцию userConnect и $db, который находится в функции - это РАЗНЫЕ переменные, никак с друг другом не связанные - их можно спокойно переименовывать (например, все $db ВНЕ функции назвать $db1, а все переменные ВНУТРИ функции - назвать $db2 и всё так же будет работать). А троеточие перед Машей и Петей - это просто подсказка, что в скобках необходимо написать значение, она, по факту, ничего не значит и её можно удалить.

  • @131ZIL
    @131ZIL Год назад +1

    После изучения react это просто как 2+2 сложить)

    • @webQ
      @webQ  Год назад

      js весь на колбэках)))) надо думать что Вам легко

  • @user-ff3lc1et3u
    @user-ff3lc1et3u 3 года назад

    Поймет урок любой новичок

  • @Alexus1504
    @Alexus1504 3 года назад +4

    Не очень понятно. Сначала Вы объявляете функцию userConnect, в которой в параметрах переменная db. Затем в переменную db присваиваете функцию userConnect уже якобы с новым значением переменной db (newBase) . Короче запутано! И с двух раз не поймешь.

    • @denipwnz1664
      @denipwnz1664 3 года назад

      Это были две разные переменные просто с одинаковыми именами, у них отличаются области видимости

  • @yashkevich8164
    @yashkevich8164 Год назад

    Подскажите, когда это спрашивают на собесах. Что они хотят услышать?

  • @Et47
    @Et47 Год назад

    Про замыкание наверное раза с 15 понял)) В других источниках смотрел несут откровенную дичь если честно. Полагаю, здесь немного запутанно из-за того, что брался пример частный. Кстати, не услышал, что замыкание используют только в анонимных функциях. Возможно и прослушал, хотя, вряд ли))

  • @aleksugrantovich5024
    @aleksugrantovich5024 2 года назад

    С переменной $db конечно запутали вы всех, в том числе и меня. Можно же было в функции UserConnect($db1) поставить и было бы тоже самое, но намного легче. А так пришлось возвращаться к старым видео, чтобы обмозговать. Но все равно все понятно, хоть и немного запутанно

    • @webQ
      @webQ  2 года назад

      Это не путанность, а реальность применения

  • @user-wf6ol1fg1i
    @user-wf6ol1fg1i Год назад +1

    У меня ругается на
    userConnect('new Base', 'Masha', function ($answer)
    {
    echo 'Ura ' . $answer;
    });
    уже по буквам переписал все вроде
    на страничке пустой экран а в phpstorm желтым выделило блок

    • @webQ
      @webQ  Год назад

      А что пишет ревизия шторма, если мышку на подсвеченный текст навести?

  • @user-im9mo1zh1b
    @user-im9mo1zh1b 4 года назад +1

    +

  • @oleksiykurylyuk4696
    @oleksiykurylyuk4696 4 года назад +3

    Прошу прощения, JS - асинхронный язык?
    Интерпретатор JS как раз таки однопоточный, тоесть только один блок кода может запускаться за раз.

    • @trypophobia7497
      @trypophobia7497 4 года назад +5

      Многопоточность и асинхронность это разные вещи в js есть такие вещи из коробки как promise а так же такие вещи как async и await => JS - асинхронный язык

  • @TheKirk1989
    @TheKirk1989 3 года назад +1

    Почему нельзя сначала написать план урока, а потом уже снимать?

  • @sergi_gg114
    @sergi_gg114 4 года назад

    Здравствуйте, этот курс будет по основам php или более углубленный ?

    • @webQ
      @webQ  4 года назад +3

      Здравствуйте. Этот плейлист будет по основам. Но в конце него мы сделаем какой нибудь самый простенький блог, думаю. Углубленный плейлист - это "интернет магазин с нуля на php" там показываются всевозможные реализации с абсолютно разными уровнями сложности

  • @teatime5543
    @teatime5543 2 года назад

    Разве редкие, частные случаи нужно давать в основах?

    • @webQ
      @webQ  2 года назад

      Нужно показывать что такое есть, чтобы отложился в голове сам факт существования подобного функционала

    • @teatime5543
      @teatime5543 2 года назад +1

      @@webQ принято, учим дальше :3

  • @andrewnikolaev4299
    @andrewnikolaev4299 4 года назад

    Прошу прощения, начал переосмысливать передачу переменных по ссылке, так до сих пор и не понял как это происходит...По началу показалось, что усвоил материал, но когда начал решать простенькие задачки, то ответы не сходятся(((пересмотрел уйму материала, но увы так и не понял, как происходит обращение одной переменной к другой...Если есть ссылки на данный материал(более подробные), буду благодарен.

    • @webQ
      @webQ  4 года назад

      К сожалению ссылок, как таковых, нет. А что именно Вам не ясно?

    • @andrewnikolaev4299
      @andrewnikolaev4299 4 года назад

      @@webQ
      function test(&$link)
      { $link++;}
      $a = 5;
      test($a);
      var_dump($a,$link);
      //1) Передаем данные в функцию, теперь у нас &$link=$a, то есть значение переменной $a, которое хранится по ссылке у переменной $link, переменной $link в свою очередь не существует=> и ответ должен быть null, null... А выдает 6,null. Почему???)
      2) Я не понимаю, почему значения переменной $a и $link разные, ведь их значения хранятся в одной ячейки и должны быть одинаковыми???
      Извините, что отвлекаю по таким мелочам....но ни как в голове не может уложиться данная тема (хотя пишут, что это элементарщина...).

    • @webQ
      @webQ  4 года назад

      @@andrewnikolaev4299 потому что в глобальной области видимости вы нигде не объявляете переменную link. Если хотите, напишите телеграмм свой, я Вам отдельно разъясню это

    • @andrewnikolaev4299
      @andrewnikolaev4299 4 года назад

      @@webQ
      Вы одно мне скажите пожалуйта... есть разница в этих выражениях, функционально: $a=&$link и $link=&$a??? Если я всё правильно понял то это одно и тоже по функционалу?

    • @webQ
      @webQ  4 года назад

      @@andrewnikolaev4299 это одно и тоже. Имена переменных разные. Но вы писали про разные области видимости переменных в прошлых комментариях

  • @lvasmart3516
    @lvasmart3516 4 года назад

    А можно ссылку на продолжение уроков !

    • @webQ
      @webQ  4 года назад +5

      На этих выходных будут новые видео в этом плейлисте, здравствуйте

  • @phonkmilf5794
    @phonkmilf5794 3 года назад

    КОНКАТЫНАЦИЯ

  • @user-jd3ff2qs4t
    @user-jd3ff2qs4t 2 года назад

    Я вообще не въехал в эти колбэки! Вы декларируете функцию, объявляете переменные в этой функции, причем не определяя типы этих переменных, что на мой взгляд не есть хорошо. И дальше вообще какая то фигня начинается, потому что вызвав эту функцию далее по ходу программы аж два раза мне не понятно как интерпретатор определяет что переменная callback это функция а не что еще? И самое главное как интерпетатор определяет по какому алгоритму эта функция работает? Все это как то не очевидно для меня.

    • @webQ
      @webQ  2 года назад +1

      @vwdev напишите в телеграм. Разберем что непонятно

    • @AndresKaen
      @AndresKaen 2 года назад

      Я уже 4-й курс смотрю и даже платный на geekbrains закончил. И везде про эти колбеки так не понятно объясняется. Пока, к сожалению, простого объяснения не находил. Кто-то вообще колбеки называет аналогами циклов. В общем то ли я сильно заморачиваюсь на этом, то ли мне просто не хватает каких-то знании для понимания этой темы.

    • @IrinaStasuk
      @IrinaStasuk Год назад

      @@AndresKaen Про колбеки очень понятно объяснили на одном из уроков курса Реакта "Путь самурая". По крайней мере для меня все встало на свои места. Это функция, которая не вызывается при ее создании и не вызывается где-то самостоятельно, а ее вызов перепоручается другой функции для вызова в нужное время в нужном месте

  • @user-jx8cc3ox7x
    @user-jx8cc3ox7x Год назад

    жуть какая)) хоть бы пронесло

    • @webQ
      @webQ  Год назад

      Не пронесет)))) эти реализации есть и во встроенных механизмах языка

    • @user-jx8cc3ox7x
      @user-jx8cc3ox7x Год назад

      значит остается надеяться, что на практике это отложится в генах)

  • @user-ie6fl2ti5r
    @user-ie6fl2ti5r 3 года назад

    Спасибо за урок !