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

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ส.ค. 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 11 หลายเดือนก่อน +1

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

  • @mexvision-3556
    @mexvision-3556 2 ปีที่แล้ว +1

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

    • @webQ
      @webQ  2 ปีที่แล้ว +1

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

  • @invgreat5608
    @invgreat5608 ปีที่แล้ว +2

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

  • @KickFuel
    @KickFuel 4 ปีที่แล้ว +3

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

  • @user-zd3pn9jf1m
    @user-zd3pn9jf1m 4 ปีที่แล้ว +2

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

  • @ryantodd6733
    @ryantodd6733 3 ปีที่แล้ว +1

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

    • @webQ
      @webQ  3 ปีที่แล้ว

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

  • @user-pb2hf8cy8m
    @user-pb2hf8cy8m ปีที่แล้ว +2

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

  • @utkirkurbanov8241
    @utkirkurbanov8241 ปีที่แล้ว +1

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

  • @AndresKaen
    @AndresKaen 2 ปีที่แล้ว +1

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

    • @webQ
      @webQ  2 ปีที่แล้ว +1

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

  • @user-qq3hs3np5n
    @user-qq3hs3np5n 3 ปีที่แล้ว

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

  • @anatoliiilescu839
    @anatoliiilescu839 4 ปีที่แล้ว +2

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

    • @webQ
      @webQ  4 ปีที่แล้ว

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

  • @andrewnikolaev4299
    @andrewnikolaev4299 4 ปีที่แล้ว +4

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

    • @webQ
      @webQ  4 ปีที่แล้ว

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

    • @andrewnikolaev4299
      @andrewnikolaev4299 4 ปีที่แล้ว

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

    • @safara_umarov
      @safara_umarov 4 ปีที่แล้ว +1

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

  • @user-se4dk3fh8r
    @user-se4dk3fh8r 3 ปีที่แล้ว +1

    super!!!

  • @yevhenturovets6430
    @yevhenturovets6430 4 ปีที่แล้ว +1

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

    • @webQ
      @webQ  4 ปีที่แล้ว

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

  • @safara_umarov
    @safara_umarov 4 ปีที่แล้ว +1

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

  • @Alexus1504
    @Alexus1504 3 ปีที่แล้ว +4

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

    • @denipwnz1664
      @denipwnz1664 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 и всё так же будет работать). А троеточие перед Машей и Петей - это просто подсказка, что в скобках необходимо написать значение, она, по факту, ничего не значит и её можно удалить.

  • @yashkevich8164
    @yashkevich8164 ปีที่แล้ว

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

  • @Et47
    @Et47 ปีที่แล้ว

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

  • @Nechaiden
    @Nechaiden 3 ปีที่แล้ว

    в топ!

    • @webQ
      @webQ  3 ปีที่แล้ว

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

  • @131ZIL
    @131ZIL ปีที่แล้ว +1

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

    • @webQ
      @webQ  ปีที่แล้ว

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

  • @user-wf6ol1fg1i
    @user-wf6ol1fg1i ปีที่แล้ว +1

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

    • @webQ
      @webQ  ปีที่แล้ว

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

  • @user-ff3lc1et3u
    @user-ff3lc1et3u 3 ปีที่แล้ว

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

  • @aleksugrantovich5024
    @aleksugrantovich5024 2 ปีที่แล้ว

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

    • @webQ
      @webQ  2 ปีที่แล้ว

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

  • @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" там показываются всевозможные реализации с абсолютно разными уровнями сложности

  • @user-im9mo1zh1b
    @user-im9mo1zh1b 4 ปีที่แล้ว +1

    +

  • @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 ปีที่แล้ว

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