1 / 1 / 1
Регистрация: 25.10.2013
Сообщений: 15
1

Указание типа после метода

13.11.2018, 01:56. Показов 965. Ответов 3
Метки нет (Все метки)

Ребят здравствуйте подскажите пожалуйста 1 вопрос
есть класс в котором есть такой метод

PHP
1
2
3
4
5
6
7
8
public static function getById(int $id) : ?self
     {
          $db = Db::getInstance();
 
          $entities = $db->query('SELECT * FROM `' . static::getTableName() . '` WHERE id=:id;',[':id' => $id],static::class);
 
          return $entities ? $entities[0] : null;
     }
я правильно понимаю? он соединяется с базой, отправляет sql запрос в определенную таблицу на получение id, затем возвращает в свойство $entities либо null, либо экземпляр класса,

Меня интересует ?self, зачем его указывать, можете объяснить простыми словами
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2018, 01:56
Ответы с готовыми решениями:

Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа
Доброго времени суток, пишу класс содержащий несколько std::set от разных типов, нужно сделать...

<!DOCTYPE> Указание типа документа
Обязательно ли указывать тип документа или можно обойтись без него? Если нет то какой из видов...

Указание типа итератора в шаблоне
Расскажите про этот момент. #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; ...

Указание типа переменной и ссылки при объявлении\инициализации
Здравствуйте! Возник такой вопрос-зачем нужно указывать тип ссылки при ее инициализации? При...

3
Эксперт PHP
5750 / 4131 / 1506
Регистрация: 06.01.2011
Сообщений: 11,279
13.11.2018, 06:29 2
Лучший ответ Сообщение было отмечено SB-Tesla как решение

Решение

Цитата Сообщение от SB-Tesla Посмотреть сообщение
Меня интересует ?self, зачем его указывать, можете объяснить простыми словами
Допустимые значения для возврата: либо объект класса, который содержит данный метод "getById", либо NULL.
http://php.net/manual/ru/funct... eclaration

Добавлено через 16 минут
Если какой-то класс будет расширять данный класс и переопределять метод, он должен будет вернуть или объект расширяемого класса (или его наследников) или NULL.
1
1 / 1 / 1
Регистрация: 25.10.2013
Сообщений: 15
13.11.2018, 13:41  [ТС] 3
А я так понял что обязательно указывать тип возвращаемого значения? в php же вроде нет строгой типизации, а если не указать self ? он вернет все что угодно? то есть я так понял если не указать тип возвращаемого значение есть шанс что он вернет не то что нужно и выдаст ошибку?
Спасибо за ответ я понял)

А обязательно указывать тип или это зависит от версии языка? или на усмотрение программиста?
0
Эксперт PHP
4841 / 3853 / 1599
Регистрация: 24.04.2014
Сообщений: 11,308
13.11.2018, 14:12 4
Тип указывать не обязательно. Если тип не указать, то функция может вернуть что угодно, если указать, то при попытке вернуть другой тип будет ошибка
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2018, 14:12
Помогаю со студенческими работами здесь

Ошибка после конвертации метода на С++ к С#: "Неявное преобразование типа "int" в "bool" невозможно"
Ошибка после преобразования метода на С++ к С#: &quot;Неявное преобразование типа &quot;int&quot; в &quot;bool&quot;...

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса?
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна...

Как можно определить что-то типа процедурного типа или классового метода (как в Delphi)?
Подскажите: как можно определить что-то типо процедурного типа или классового метода(как в...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru