ООП для начинающих PHP. Переменная $this и Self. Для чего нужны?

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 91

  • @PIVKOooo
    @PIVKOooo 7 років тому +66

    Чтобы было понятнее совсем новичкам, статическая переменная (свойство) одна на все объекты данного класса, как и для самого класса. То есть, при изменении данной переменной при обращении к какому-либо объекту класса или при обращении к самому классу, будет изменена данная переменная у всех объектов (экземпляров) класса, как и у самого класса. Весьма полезный модификатор этот (static), если нужно будет изменять параметр, не перебирая все объекты класса, и не только ...

    • @activegeek3030
      @activegeek3030 6 років тому

      Ну да! Практически все так как и в Java ))))
      static public и всё такое

    • @sergeipirogov5396
      @sergeipirogov5396 6 років тому +1

      @@activegeek3030 Походу все языки представляют почти одно и то же.Вопрос,нафига козе баян,то есть зачем их столько напридумывали? Разве из-за каких-то мелких спецотличий в функционале,заточненном под свои спецзадачи? Ну нам от этого только проще будет учить сл.язык(и),т.к всё одинаково практически,кроме синтаксиса и ещё какой-то там мелочи.

    • @Ivan-rc4it
      @Ivan-rc4it 5 років тому

      @@sergeipirogov5396 Наплодили это как много марок машин, зачем столько по сути они все перемещают с одного место на другое, но есть "НО" - они разные в комфорте и др., так и с языками

    • @expert6609
      @expert6609 4 роки тому +2

      @@sergeipirogov5396 Прошёл год и не знаю уместно ли тебе это писать ,может ты уже понял, для чего наплодили столько ))) Но может другие прочтут и им будет полезно. Дело в том что, как с казал @
      Flamin GO, что когда у тебя есть статическая переменная то он может помочь к примеру у тебя есть класс на основе которого у тебя есть много объектов, и что бы у тебя была возможность произвести их подсчёт, ты может это сделать просто. У тебя в классе будет статическая переменная-счетчик равная нулю и во время создания каждого экземпляра класса при помощи конструктора добавлять к этой переменной единицу. В результате у тебя всегда известно количество экземпляров объектов данного класса и далее эта переменная тебе позволяет делать разные немыслемые весчи ))) не прибегая к танцам с бубном )))

    • @sergeipirogov5396
      @sergeipirogov5396 4 роки тому +2

      @@expert6609 Я маленько забросил php, но потом обязательно вернусь к нему, и тогда разберу твой ответ :-). Смотрел тут видео одного программиста, и с его слов я понял, что некоторые языки большие компании разрабатывают из-за одной банальной причины, а именно, чтобы не платить бабки другой компании, на языке которой они разрабатывают свои продукты. Причём "новый" язык естественно пишется по мотивам старого, то есть старый абсолютно устраивал, но бабки... :-). В итоге вся "новизна" заключается в новом названии, и новом синтаксисе, то есть то же самое, написанное под другим флагом. Это уже чистая коммерция, в то время как новичкам говорят про моду и "улучшенные возможности". Разумеется, появляются и совершенно новые языки, но основные принципы у них всё равно по большому счёту всё те же.

  • @ivanpunch
    @ivanpunch 6 років тому +24

    3:10 - Ты задел мои Ивановские чувства

  • @zloyleva
    @zloyleva 7 років тому +30

    Было бы интересно еще показать пример жывого кода где используюся одни и другие. Т.е. раскрыть вопрос - зачем?

    • @SuprunAlexey
      @SuprunAlexey  7 років тому +4

      А в данном видео не раскрыл?(

    • @verge_programming
      @verge_programming 7 років тому +4

      жЫвенько так

    • @OleksiyOs
      @OleksiyOs 7 років тому +13

      пример живого кода был с self, но сложно понять различие self и $this из видео ;) Спасибо за Ваши труды. Хороший материал!

  • @alexandershnaidman8188
    @alexandershnaidman8188 Рік тому

    Спасибо за отличный урок! Всё чётко и понятно!

  • @alexanderpavlov2026
    @alexanderpavlov2026 5 років тому +20

    Зачем ты назвал курс для начинающих, если ничего не объясняешь?

  • @fermatoone7904
    @fermatoone7904 6 років тому +4

    Красавчик, здесь ты уже сумел нормально и адекватно объяснить. Спасибо )

  • @medvedemigrant
    @medvedemigrant 7 років тому +3

    Скажем так. У статических переменных и функций есть ещё одно свойство о котором стоит рассказать.
    Например то, что статическая переменная класса будет одна на все экземпляры этого класса и что обращаться к ней, как и к статическому методу, можно вне экземпляра класса. Я считаю, что об этом стоит рассказать, и желательно с примером.

    • @SuprunAlexey
      @SuprunAlexey  7 років тому +2

      А вы посмотрите тему видео..Посмотрели? этот урок не о статических свойствах и методах, о них будет свое видео, там где все в подробностях будет рассказано.

    • @medvedemigrant
      @medvedemigrant 7 років тому

      Ну если видео будет, то это отлично. :-)

    • @SuprunAlexey
      @SuprunAlexey  7 років тому

      Конечно выйдет, при том в ближайшее время!

  • @МИШЭРЛЭР
    @МИШЭРЛЭР 5 років тому +1

    PhpStorm наверное с ключиком до 2100 года....А вообще нормально разъясняешь, конечно тому кто с этим не сталкивался тяжело догнать, но это общая проблема.

  • @CuruSmith
    @CuruSmith 7 років тому +2

    Часто-часто, го-го)

  • @alextopsite
    @alextopsite 7 років тому +5

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

    • @SuprunAlexey
      @SuprunAlexey  7 років тому +2

      Даже не обращал внимания

  • @Таксист-Эволюционер
    @Таксист-Эволюционер 5 років тому +8

    7-37 Так и не услышал ...для чего static function нужна .....печально

    • @Игорь-ш3и8ы
      @Игорь-ш3и8ы 8 місяців тому

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

  • @kottanya
    @kottanya 6 років тому

    Спасибо ))

  • @cloudyone-sounddesigner5018
    @cloudyone-sounddesigner5018 6 років тому +2

    Не мы забыли, а вы)))

  • @OchevVladimir
    @OchevVladimir 6 років тому +1

    Подскажите, где можно найти практические уроки с заданиями по данной теме?

  • @vasylmysiura6421
    @vasylmysiura6421 6 років тому +2

    Автор видео, ты случайно не читал книгу PHP7 Дмитрий Котеров, Игорь Симдянов (2016) ?

    • @Александр-э7ж7м
      @Александр-э7ж7м 5 років тому +1

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

  • @battalov_u
    @battalov_u 4 роки тому +3

    я правильно понимаю, что к статичным свойствам можно обратится только через self, а через $this этого сделать нельзя?

    • @Kasymbek-i8p
      @Kasymbek-i8p 3 роки тому +4

      да, наверное поздно ответил)

  • @ИванСмирнов-г9з
    @ИванСмирнов-г9з Рік тому +1

    тема геттеров и сеттеров не раскрыта вообще

  • @zhandosbidullayev6332
    @zhandosbidullayev6332 4 роки тому +3

    Я ОДИН НИЧЕГО НЕ ПОНЕЛ хотя знаю что такой this

  • @proodfirst2330
    @proodfirst2330 7 років тому

    я так понял $this и self это некие синонимы.. А какая из них чаще используется , на ваш взгляд?

    • @cityedit
      @cityedit 6 років тому +1

      хахаахах, вообще-то нет это не синонимы, ахахаха. $this используется для обращения к членам экземпляра класса, а self обращается прямо к классу

    • @brodyagabomzh
      @brodyagabomzh 6 років тому +5

      чтобы лучше понимать какой-либо язык программирования, можно подтянуть знания английского. Это в определенной степени упростит понимание того, что происходит.
      This - это, эта, этот.
      Self - сам, себя самого

    • @МОРАЛИСТ-п6з
      @МОРАЛИСТ-п6з 3 роки тому

      @@cityedit ты прям видео на 10 минут укоротил своим комментом.

  • @xoxot_shamana
    @xoxot_shamana Рік тому

    знак доллара в $this указывает на то, что мы обращаемся к переменной. И тут же видим: $this -> test(). Как так?

    • @mkrtumyanis
      @mkrtumyanis 10 місяців тому

      Как я понял - мы применяем метод (функцию) тест именно к объекту

    • @xoxot_shamana
      @xoxot_shamana 10 місяців тому

      @@mkrtumyanis да я уже разобрался) уже вовсю использую ООП. Перечитываю свои старые комментарии - оказывается я был на очень низком уровне. Более 10 лет писал в процедурном стиле в notepad++. Чуть более чем полгода использую шторм и ООП. Госпаде... какой же оказывается я говнокод писал.....

  • @zloyleva
    @zloyleva 7 років тому +1

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

    • @SuprunAlexey
      @SuprunAlexey  7 років тому

      Посмотрите видео о статических свойствах методах, там все детально описано.

    • @kennymaccormick6949
      @kennymaccormick6949 7 років тому

      А по мне он об этом пол-урока говорил

  • @GaldarTurin
    @GaldarTurin 6 років тому

    Ну вот не могу понять зачем нужен этот class. Все решения которые ты писал можно спокойно переписать через if else ifelse и function. Объясни где именно использовать этот class. Лично знаю коммерческий сайт который работает без class`ов.

    • @ПоповТимофей-л7й
      @ПоповТимофей-л7й 6 років тому +1

      ООП - вещь не обязательная, но, если ты хочешь разбираться с чужим кодом и быть действительно подкованным в PHP - будь добр учить ООП. Поверь, бывают такие участки и задачи, которые проще написать с использование ООП, чем с кучей if и elseif'ов.

    • @dmitriyv5740
      @dmitriyv5740 2 роки тому

      Я несколько раз начинал учить ООП и столько же бросал. Не увидел выгоды данного подхода, а тратить время на это не особо хочется. ООП мне кажется вообще мало где крайне необходим. Например реальный пример, где использование ООП было действительно удобно - это использование в парсерах, где можно писать цепочки запросов/поиска элементов по html коду.

  • @anvarkzn
    @anvarkzn 2 роки тому +1

    Настолько бестолково объяснить... надо постараться)))

  • @sdfjkdlsfdlskj
    @sdfjkdlsfdlskj 7 років тому

    Откуда появился класс User? Просто немного не понятно.

    • @antonsham
      @antonsham 7 років тому +3

      Класс User был объявлен в 12-й строке

    • @sdfjkdlsfdlskj
      @sdfjkdlsfdlskj 7 років тому

      Anton Sham спасибо

  • @onemasterlomaster1829
    @onemasterlomaster1829 7 років тому

    норм! но не надо так часто )))

    • @SuprunAlexey
      @SuprunAlexey  7 років тому

      МастерЛомастер что именно? Выпускать видео?

    • @onemasterlomaster1829
      @onemasterlomaster1829 7 років тому

      да ))) Я не успеваю чкачивать ))) Лучше реже но дольше и качественнее, ну хотябы 1 видео в день минут 20-30 , человек же должен посмотреть, потом сам все попробовать и осмыслить )

    • @SuprunAlexey
      @SuprunAlexey  7 років тому +5

      А вы не скачивайте пожалуйста, а смотрите в ютубе, а то смысл блога теряется, да и статистику так очень портите. А человек не может зайти на канал и открыть плейлист тот который ему нужен и смотреть и пробовать и осмысливать? Я стараюсь выпускать 2-3 видео в день.Быстрее наполнить канал.

    • @onemasterlomaster1829
      @onemasterlomaster1829 7 років тому +2

      я без претензий ))) просто когда видосов много нельзя просто остановится и обдумать сразу интересно дальше смотреть ))) А по поводу скачиваний видосов, у меня на автомате скачивает все в архив, когда нахожу интересный канал врубаю и как только новое видео выходит сразу все автоматом качает )))) Это для себя архивчики, ну на всякий случай, вдруг автор пропадет как к примеру "sorax" или решит все удалить или за деньги начнет курсы продавать ))) а у меня все есть ))) обещаю выкладывать ни где не буду, во всяком случае пока ))) Я и оригинал тоже смотрю у тебя на канале, чтобы тебе просмотры шли, даже адблоки на твоем канале отключил ))) Скачивать видосы это привычка такая ))) все качаю, ну естественно только качественный контент ))) к примеру твой весь канал у меня в архивах ))))

  • @vesh95
    @vesh95 6 років тому

    1:31 Не верно пишешь название метода

  • @МОРАЛИСТ-п6з
    @МОРАЛИСТ-п6з 3 роки тому +2

    Ужасная подача. Ты блин не мог просто обяснить разницу и зачем нужны?? нахрена так много ненужной информации???

  • @cybernik812
    @cybernik812 6 років тому +2

    Я не понимаю это.... я идиот?

    • @SuprunAlexey
      @SuprunAlexey  6 років тому

      Что конкретно не понятно

    • @cybernik812
      @cybernik812 6 років тому

      Это сложно объяснить... я не понимаю принцип сам. Я ходил на курсы по php три месяца, там тоже всё это было, но и там это не заходило. Спасибо Вам за курс! Дело не в видео или в том как оно подано. Дело во мне :)

    • @fermatoone7904
      @fermatoone7904 6 років тому +21

      Позволь, я попробую объяснить как смогу.
      1. Объект это моб. У моба есть сила, здоровье, атака. Вот эти сила, здоровье и атака - являются свойствами объекта. Свойствами моба.
      Выглядеть будет примерно так:
      class Mob {
      public $сила;
      public $здоровье;
      public $атака;
      }
      Так вот, то же самое и в примере на видео. Сам принцип работы с объектом нужен для манипуляции характеристиками нашего моба. Например задать какое-то имя мобу, задать уровень силы и здоровья. В объекте у нас лежат его базовые виды характеристик, а вне объекта мы уже указываем какие именно численные (или словесные) значения будут у этих характеристик.
      Экономия кода заключается в том, что нам чтоб создать 100 разных мобов с разными параметрами - не нужно каждый раз писать новый объект. А нужно лишь с помощью функции указать какие параметры должны быть у моба.
      Я любитель рпг игр, поэтому мне кажется такой пример с мобами, персонажами и характеристиками более нагляден и живой. )

    • @ИгорьД-щ3ъ
      @ИгорьД-щ3ъ 5 років тому +1

      @@fermatoone7904 отлично. Хороший пример. А можешь объяснить переменную this на хорошем примере??

    • @vladosbarbos
      @vladosbarbos 5 років тому +2

      @@fermatoone7904 ты объясняешь как боженька (не шутка)

  • @RazvlekaykaBY
    @RazvlekaykaBY Рік тому

    Для чего нужны статические функции и статические переменные говорить не нужно...
    Без этой информации остальная информация с self:: уже не воспринимается.

  • @faridont
    @faridont 6 років тому

    Здарова, смотрю тебя совсем недавно, но я уже восхищен твоим контентом :)
    Одна просьба на будущее, ставь фоновую музыку)

  • @Ivan-rc4it
    @Ivan-rc4it 5 років тому

    Почему в примерах раньше Вы использовали ->, а в конце видео используете "::" (два раза двоеточие)?

    • @mkrtumyanis
      @mkrtumyanis 10 місяців тому

      Потому что для self идёт ::, а для $this ->

  • @ДмитрийСивицкий-п8ь

    Для чего Вы постоянно повторяете "и так все понятно и так далее" ,куря для начинающих, это повторение ездит по ушам

  • @ПослеСмерти
    @ПослеСмерти 6 років тому +1

    У меня такое предчувствие ,что таким образом можно писать меньше кода

  • @it_stylecorp.7694
    @it_stylecorp.7694 4 роки тому +1

    Без обид, но 4 рекламы в 10-ти минутном ролике - это просто жесть, я досмотрел до сих пор, и больше не могу, перебор, уже на втором видео было лютое желание рубануть видео.

    • @wockywocky3109
      @wockywocky3109 3 роки тому

      Я не знаю о какой рекламе идет речь...
      Сейчас я на ПК где нет адблока, но даже так, у меня не было рекламы. Если у тебя такая проблема то установи адблок, это же так просто

  • @maxdebays8210
    @maxdebays8210 5 років тому +2

    Автор ты точно программист?
    Иди заново ООП учи , бред

  • @alexeyivanov3522
    @alexeyivanov3522 3 роки тому

    Качество ужасное.

    • @SuprunAlexey
      @SuprunAlexey  3 роки тому

      В смысле

    • @alexeyivanov3522
      @alexeyivanov3522 3 роки тому

      @@SuprunAlexey
      Сначала общее замечание - у Вас хороший русский язык, прекрасная дикция и некоторые циклы занятий просто образцовые(сердце радуется!), но с "некоторыми" занятиями, а именно по ООП - просто беда... Итак, 1.Обратите,пожалуйста, внимание на "сорные" и ненужные в изложении слова, их не должно быть ,если Вы хотите быть понятым, а не просто что-то сказать 2. Экран д.б. разделен на две части- редактор и консоль, что бы не "прыгать".
      3. Каждый сегмент изложения делать в НОВОМ открытом файле(желательно с названием), или начинающимся с комментария (что мы делаем в данную минуту). Это уберет "лапшу" с экрана, меня, в частности это путает и раздражает. 4. Что мешает вести весь курс на одних и тех же открытых файлах, дополняя их на следующем занятии. Это сэкономит Ваше время и даст, при необходимости, возможность мгновенно вернуться на ранее изложенное. Пронумеруйте файлы в соответствии с номерами уроков (#6.1.1.1, как то так). Как говорил Жванецкий,-
      тщательнЕе надо быть...
      Желаю Вам успехов, часто возвращаюсь к Вашим урокам, и иногда(!!!) они приносят "большое удовлетворение". С уважением, Алексей Иванов.

  • @anqaz
    @anqaz 5 років тому +1

    Смотреть не возможно каждый 5сек реклама

  • @rusdemashov5056
    @rusdemashov5056 6 років тому

    Интересно !
    $user1=new User();
    $user1-> name="Alex";
    $user1->getName(); // будет AlexTest ,а если
    $user2=new User();
    // $user2-> name="Ivan"; //закоментировано
    $user2->getName();
    $user2-> name="Ivan";// будет ИмяTest
    То есть не прочитывается весь код целиком с начала и затем выполняется,а чётко по последовательности= тут Иван безымянный получается- не дошло до него !!!
    Вообще что $user1 и $user2=одно и то же как $user1 !!! Зачем понты с номерами-для наглядности и ли где-то в коде дальше (возможно) будут применяться эти переменные?

    • @Ivan-rc4it
      @Ivan-rc4it 5 років тому +1

      если задаете такой вопрос то Вы не поняли, что такое объект

  • @arslonboyisorov7751
    @arslonboyisorov7751 3 роки тому

    Спасибо ))