Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
 Аватар для SB-Tesla
1 / 1 / 1
Регистрация: 25.10.2013
Сообщений: 15

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

13.11.2018, 01:56. Показов 1166. Ответов 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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2018, 01:56
Ответы с готовыми решениями:

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

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

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

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

Решение

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

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

А обязательно указывать тип или это зависит от версии языка? или на усмотрение программиста?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
13.11.2018, 14:12
Тип указывать не обязательно. Если тип не указать, то функция может вернуть что угодно, если указать, то при попытке вернуть другой тип будет ошибка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2018, 14:12
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru