Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Заблокирован

Есть ли конвенции по возврату предустановленных типов?

02.05.2024, 19:32. Показов 628. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ранее практически не пользовался типами, поэтому теперь стараюсь их использовать и периодически возникают вопросы.

PHP
1
2
3
4
public function id(): false|string
{
    return session_id();
}
IDE автоматом проставила возвращаемые типы, которые предусмотрены функцией session_id().

Мне в таких случаях поступать так же или я могу сделать:

PHP
1
2
3
4
public function id(): string
{
    return session_id();
}
Есть какие-то инструкции по этому поводу?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2024, 19:32
Ответы с готовыми решениями:

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

Переустановка Windows 7 с сохранением предустановленных программ
Добрый день! Винт поделен на 3 части: D-файловое хранилище, C-установлена Win7-32 и G-установлена Win7-64. Нужно чтобы система работала...

Адреса аргументов процедуры, соотв. x86 Unix системе V конвенции
прив! неправильно ответил на один пункт в вопросе теста.. как должно быть правильно? адреса аргументов процедуры, соотв. x86 Unix системе...

4
Эксперт PHP
 Аватар для liris
4386 / 1026 / 154
Регистрация: 16.01.2023
Сообщений: 2,552
03.05.2024, 09:11
Лучший ответ Сообщение было отмечено HP Fedora как решение

Решение

Цитата Сообщение от HP Fedora Посмотреть сообщение
или я могу сделать:
Если у вас функция вдруг вернет false, то в коде будет ошибка.

Функция session_id в некоторых случаях может возвращать false:
https://www.php.net/manual/ru/... ion-id.php

Соответственно, вам нужно либо правильно установить возвращаемый тип (в данном случае false|string), либо если вы хотите всегда возвращать строку - предусмотреть значение по умолчанию:

PHP
1
2
3
4
public function id(): string
{
    return session_id() ?: '';
}
0
Заблокирован
03.05.2024, 09:37  [ТС]
Цитата Сообщение от liris Посмотреть сообщение
либо если вы хотите всегда возвращать строку - предусмотреть значение по умолчанию
уловил суть
0
Невнимательный
 Аватар для ft4l
3107 / 1277 / 358
Регистрация: 08.02.2013
Сообщений: 7,453
Записей в блоге: 2
03.05.2024, 11:14
Лучший ответ Сообщение было отмечено HP Fedora как решение

Решение

Цитата Сообщение от liris Посмотреть сообщение
Если у вас функция вдруг вернет false, то в коде будет ошибка.
ошибки вроде нет ... приведение к строке
php -r "function id(): string {return false;} var_export(id());"
''
php -r "function id(): string|false {return false;} var_export(id());"
false
php -r "function id(): string {return phpversion()=='8.2.18';} var_export(id());"
'1'
php -r "function id(): int {return phpversion()!='8.2.18';} var_export(id());"
0

Так-то похоже можно воспользоваться иногда... но не уверен как насчёт в любых версиях и изменится-ли.
И не всё ко всему приводит. Uncaught TypeError бывает если к строку к int пытаться привести

Добавлено через 5 минут
Цитата Сообщение от HP Fedora Посмотреть сообщение
суть
суть скорее в том что удобнее разобраться что должно и может возвращать.
даже закомментировав такие :mixed уже в коде чуть легче разобраться
Но так да, по рукам может бить, за какие-нибудь неожиданно возникшие ситуации
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
03.05.2024, 12:45
Лучший ответ Сообщение было отмечено HP Fedora как решение

Решение

Цитата Сообщение от liris Посмотреть сообщение
Соответственно, вам нужно либо правильно установить возвращаемый тип (в данном случае false|string), либо если вы хотите всегда возвращать строку - предусмотреть значение по умолчанию:
Еще можно кидать исключение. session_id() возвращает false в случае неудачи, скорее всего это критическая ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2024, 12:45
Помогаю со студенческими работами здесь

Значимость предустановленных разделов на жестком диске (можно ли удалять)
Ноутбук Acer Aspire E1-571G. Два верхних раздела, имеющих отношение к начальной загрузке. Можно ли их снести и потом спокойно ставить...

Есть ли разница между неявным и автоматическим приведением типов?
Привет, подскажите кто нибудь. Читаю про приведение типов в Java. В одной статье используют термины: "автоматическое"...

Написать программу в которой есть перечисляемый и ограниченный типы данных и выполняются операции dec и inc над переменными этих типов
Написать программу в которой есть перечисляемый и ограниченный типы данных и выполняются операции dec и inc над переменными этих типов.

Есть ли в VB или в ADO, DAO или RDO функция преобразования MS SQL типов данных в MS Access?
Существует ли встроенная функция перевода типов данных SQL в Access, Paradox, Dbase и пр.?

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru