За последние 24 часа нас посетили 16700 программистов и 1682 робота. Сейчас ищут 836 программистов ...

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

Тема в разделе "Подворотня", создана пользователем maxycwebber, 9 авг 2016.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal где ? Хочешь сказать что я где о ошибся выше ?
    --- Добавлено ---
    Хочешь сказать это не верно ?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim Ты так и не ответил на прошлый вопрос. Умело игнорируешь?
     
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal так как я написал так и поведёт.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim это не ответ на мой вопрос. Еще попытки будут?
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal в нём всё сказано если ты считаешь, что классы и их свойства с методами работают по другому, то иди воюй с маном, а не тролль меня.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim это опять не ответ на мой вопрос. Увы. Ладно, давай с другой стороны зайдем. Какой у меня был вопрос?
     
  7. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL

    и скажи мне разве я не ответил как себя поведёт протектед ?

    Я даже не поленился и проверил, я всё верно сказал. на лови ошибку

    Код (Text):
    1. Fatal error: Uncaught Error: Cannot access protected property B::$test in /var/www/gabriel.com/index.php:34 Stack trace: #0 {main} thrown in /var/www/gabriel.com/index.php on line 34
     
    #32 askanim, 9 авг 2016
    Последнее редактирование: 9 авг 2016
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну не так это. Нет доступа из методов наследника, и не наследуется - не одно и тоже. Не надо глупости такие писать
    PHP:
    1. class A { private $a = 12; function b() { echo $this->a; } }
    2. class B extends A {}
    3.  
    4. $obj = new B;
    5. $obj->b();
    Данный код выведет 12, а не ошибку, что нет переменной A. Поскольку в методе, который унаследован из класса A можно обращаться к полю $a, следовательно у экземпляров класса B оно тоже есть, метод не отвалился. Но из метода, объявленного в классе b я не могу его поменять иначе, чем через вызов метода родителя.
     
  9. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    А именно я написал вот что

    А чем оно от первого отличается то тоже написал на лови

     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim нет, ты не понял вопроса. Зачем отвечать, если не понял собеседника? Мы с тобой уже обсуждали твою привычку пиздеть не подумав. Ты даже на две недели был остужен баном. Но ты завёл себе пинокио, вместо того чтоб отсидеть это наказание и поработать над собой.
     
  11. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Чё ? Ты сказал тоже что и я ты не понимаешь? Если у тебя

    PHP:
    1. Class book {
    2.     private function boolka() {
    3.        echo 'я привейт и я доступе только на тот класс в котором нахожусь, я  функция и по наследованию не иду, также меня нельзя вызвать напрямую.'
    4. }
    5.   public function  whooooo () {
    6.      $this->boolka();
    7. }
    8.  
    9. }
    10.  
    11. $mr = new book;
    12. $mr->boolka(); // будет ошибка!
    13. $mr->whooooo \();// верный вызов!
    На проверь. И скажи что не прав, я тебе видео запишу где это работает. Не поленюсь. (Только завтра ща спать!)
    --- Добавлено ---
    @Ganzal что не понятного чем первый пример отличается от второго.
    --- Добавлено ---
    вижу только один код автора, другово не вижу, и я не бомблю, а отстаиваю точку зрения, что я правильно написал. Мне что теперь отставивать своё мнение нельзя, если оно верное, по факту могу с мануала привести примеры, прямо вырезая, и будет всё так же как я и сказал.
    Не вижу второго так называемого примера ткни и скажу чем отличается.
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    PHP:
    1. Class book
    2. {
    3.     private function boolka ()
    4.     {
    5.         echo __METHOD__, PHP_EOL;
    6.     }
    7.  
    8.     public function whooooo ()
    9.     {
    10.         $this->boolka();
    11.     }
    12. }
    13.  
    14. $mr = new book;
    15. $mr->whooooo();
    16.  
    17. class AskanimProstoTupojMudak
    18.         extends book
    19. {
    20.    
    21. }
    22.  
    23. $ms = new AskanimProstoTupojMudak;
    24. $ms->whooooo();
    Код (Text):
    1. book::boolka
    2. book::boolka
    Как видишь, тут ты своим наездом опять обосрался. Можешь записать мне видео, где у тебя работает иначе. ЖДУ. И ЖДУ ОТВЕТ НА СВОЙ ВОПРОС.
     
  13. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal У меня такой код был? Ты другой скинул, ты срываешься сейчас сам как истеричка. Я считаю что я ответил на твой вопрос если считаешь, что нет то можешь подкорректировать конкретней с примерами, а именно один пример и второй и по факту спросить чем отличается.
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не совсем так. Я потребовал у тебя объяснить в чем разница между первым примером и вторым. Если бы ты не был безмозглым мудаком и прочитал бы тему - ты понял бы что в данной тебе на тот момент считалось первым примером а что вторым. Но тебе нужно было как обычно пропердеться а в голову ты только жрёшь. Это бессмысленная беседа.
    --- Добавлено ---
    следи за темой сообщения. Я твой код модифицировал под тематику темы. Если ты хочешь блеснуть знаниями то для начала научись читать. Вот это вообще охуеть каким знанием блеснешь. Пока ты им не блещешь.
     
  15. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal ох как всё сложно не вижу второго примера, я прочитал беседу, кинь код, там и ссылки и другие коды.
    --- Добавлено ---
    @Ganzal Вахах,

    на вставь проверь

    PHP:
    1. Class book
    2. {
    3.     private function boolka ()
    4.     {
    5.         echo 'Привет @Ganzal';
    6.     }
    7.  
    8.     public function whooooo ()
    9.     {
    10.         $this->boolka();
    11.     }
    12. }
    13.  
    14. $mr = new book;
    15. $mr->whooooo();
    16.  
    17. class AskanimProstoTupojMudak
    18.     extends book
    19. {
    20.  
    21. }
    22.  
    23. $ms = new AskanimProstoTupojMudak;
    24. $ms->whooooo();
    --- Добавлено ---
    Всё чётко вывело. Аж два раза :D ибо два раза вызвал.
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @askanim то есть ты признаешь что читать и думать не умеешь?
    --- Добавлено ---
    Код (Text):
    1. Привет @GanzalПривет @Ganzal
    ты что этим хотел сказать-то? Работает как и должно.
     
  17. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal да работает, а я что написал, что работать не будет? И мой код будет работать, и этот будет, потому что это правильный вызов private функций! Напрямую их вызвать нельзя, я везде всё правильно написал мой любимый стандарт psr-4 и круглыми сутками кодю на ооп, да я не юзаю магические методы, потому что считаю мне пока рано к ним, но тут и не про это спор, а про базис.
    --- Добавлено ---
    @Ganzal так ладно у меня 12 ночи, увидел, но меня гложат сомнения по поводу этого кода

    во первых селф это зарезервированное слово, а во вторых статику юзать в простых методах просто нельзя.

    PHP:
    1. class CategoryModel {
    2.  
    3.     private $id, $categoryText;
    4.  
    5.     public function createWithParams($id, $categoryText) {
    6. // =_= >>> ????
    7.         $instance = new self(); // ????
    8.         $instance->id = $id; // ????
    9.         $instance->categoryText = array();
    10.  
    11.         if ($categoryText != null)
    12.             $this->categoryText[] = $categoryText;
    13.  
    14.         return $instance;
    15.  
    16.     }
    17.  
    18. }
    я не понимаю что там в $cstegoryText передаётся.
    --- Добавлено ---
    @Ganzal так ладно у меня 12 ночи, увидел, но меня гложат сомнения по поводу этого кода

    PHP:
    1. class CategoryModel {
    2.  
    3.     //private $id, $categoryText ????? =_=;
    4.       private $id;
    5.        private $categoryText = [];
    6.     public function createWithParams($id, $categoryText) {
    7.         $instance = new self(); // ?????
    8.         $instance->id = $id; //// ????
    9.         $instance->categoryText = array(); // ???
    10.     // WTF?
    11.  
    12.  
    13.        // if ($categoryText != null)
    14.          // ????   $this->categoryText[]  ??? ???? ? = $categoryText;
    15.      // и конструкцию выше я бы заменил на вот это
    16.  
    17.  
    18.  
    19.        if(!empty($categoryText))$this->categoryText[] = $categoryText;
    20.  
    21.         return $instance;
    22.  
    23.     }
    24.  
    25. }
    И я херово читаю по английски я могу сделать так что мы вернём потом весь объект инстанс, и всё.

    И вообще не понимаю, в мане написано как надо делать, чтобы всё работало.

    Молчу про js там я даун. Но в php уже базу хорошо закрепил.

    Единственное что в php осталось это сокеты постигнуть и волшебные методы... Ну конеш там до талого ещё всяких библиотек от zend по работе со всем и вся, но потихоньку постепенно всё узнаем.

    $this->categoryText[] конечно тут ошибка будет не определённое значение ни где не указано что данное свойство класса является массивом.
    @Ganzal Хочешь ответ?

    Один пример отличается от другово: бредом сумашедшего.
     
    #42 askanim, 9 авг 2016
    Последнее редактирование: 9 авг 2016
  18. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ещё раз: не наследуется и не доступно - не одно и тоже. Наследуется всё. Доступно не всё.
     
  19. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mkramer не наследуется я имел введу! Доступ напрямую нету у привейта вообще не откуда, только косвенно, протектед только по наследованию доступ прямого при вызове нет только косвенно ! Мы с тобой говорим об одном и том же только разными словами!
     
  20. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @askanim, ну так говори по-русски. Не наследуется - это если бы вообще пропадали в наследниках эти поля. А они есть, но не доступны. То есть наследуются
    Вот знаешь, я вырос в Узбекистане, но так по-русски даже узбеки не пишут....
     
    Anhk нравится это.
  21. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    напрямую, что не понятно? У тебя, что?
    Ограниченный словарный запас?
    Не можешь смысл предложения уловить?

    Анхк лайкнул похоже он тоже Узбек.

    Напрямую и косвенно, что можно не понять в этих двух словах?
    --- Добавлено ---
    @mkramer а я в конце слова Доступ букву не дописал, опечатался, и ты решил стебануться.
    --- Добавлено ---
    @mkramer то что ты не уловил суть предложения и не смог сопоставить одну с другим, говорит о том, что не русский тут ты, а не я.
    --- Добавлено ---
    я тебе, даже пример кода к своим словам привёл, чтобы до тебя свою мысль донести.
     
    #46 askanim, 10 авг 2016
    Последнее редактирование: 10 авг 2016
  22. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    @askanim, ты опять истеришь.
    Будь проще. Это сообщество, весьма дружное. То, что попадаются мудаки (кстати, к которым @mkramer я бы не отнёс) - это не значит, что надо становится таким же.
    Или если ты пытаешься подражать Ганзалу, то у тебя не получается.

    В любом случае, не надо устраивать здесь (я минуты три сидел думал, какое слово тут вставить. в общем, извините) такой хуйни. Оскорбления в сообществе совершенно не приветствуются. Да и к тебе у участников положительного отношения не прибавляется.
    Попытайся понять разницу между словами "тематичный срач" и "полный капец".
     
    Ganzal и askanim нравится это.
  23. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mr.akv согласен.... да он не похож был на оного, пока мне не написал вот так.

    @mkramer как бы метода private нету в наследуемом классе он не доступен. Его там нету, ну мне так казалось, что это так должно быть, ты вызываешь существующий в этом классе метод, который вызывает привейт свойство существуещего только в классе А. По логике вещей, оно не должно наследоваться... Если доступа нет, то и наследования быть не должно...
    https://php.ru/forum/threads/oop-nasledovanie-private-svojstv.51487/

    надо туда перебраться.





     
    #48 askanim, 10 авг 2016
    Последнее редактирование: 10 авг 2016
  24. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    но в теории вызвать то его нельзя, так что по сути его как бы там и нет, но он как бы и есть... В общем проще сказать его там нет.
     
  25. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mkramer нам от его наследования не горячо не холодно больше похоже на баг.
    А по логике вещей ты вызываешь метод и он воспроизводит переменные в своей области видимости. Или возвращает что-то, так что то что ты написал не доказательство наследования.

    Вот если бы ты вызвал этот привейт в другом классе который наследуется, и он бы там прошёл без ошибки... Тогда был бы другой разговор. А как по мне так он и не наследуется и доступа нет, так что, как то так. И то это надо ещё проверить.

    А вот @runcore в другой теме дал интересный пример и наглядно показал существование наследования.
    --- Добавлено ---
     
    #50 askanim, 10 авг 2016
    Последнее редактирование: 10 авг 2016