powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сигнатура метода: как объявить тип resource ?
20 сообщений из 20, страница 1 из 1
Сигнатура метода: как объявить тип resource ?
    #40036439
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С php 7 в сигнатуре метода можно объявлять типы данных. Только вот resource недопустим.
Код: php
1.
2.
3.
public function test(resource $res) {
    ...
}


Как int объявлять вроде как некорректно...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061448
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В версии 8 тип resource не появился.
В качестве обходного пути можно не указывать тип вообще, либо указать int .

Но в идеале всё-таки нужен тип resource ...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061453
$res - это же (object)
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061499
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик$res - это же (object) $res - это переменнная типа resource
resource - это специальный тип данных (не объект и не число)
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061549
ну там же и написано
авторПоскольку тип resource содержит специальные указатели на открытые файлы, соединения с базой данных, области изображения и тому подобное, преобразование в этот тип не имеет смысла .
а в описании к get_resource_type()
Код: php
1.
2.
3.
get_resource_type ( resource $handle ) : string

echo get_resource_type($c) . "\n"; // это работает до версии PHP 8.0.0 так как с версии 8.0 curl_init возвращает объект CurlHandle, а не ресурс
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061789
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
ну там же и написано
авторПоскольку тип resource содержит специальные указатели на открытые файлы, соединения с базой данных, области изображения и тому подобное, преобразование в этот тип не имеет смысла .
Не имеет смысла преобразовывать данные в тип resource . Но контролировать типы входных параметров - смысл имеет.

бабушкин зайчик
а в описании к get_resource_type()
Код: php
1.
get_resource_type ( resource $handle ) : string

В справке приводится не фрагмент PHP-кода, а синтаксис функции на псевдо-языке, максимально похожем на PHP.
Это значит, что не каждое описание функции в справке является корректным фрагментом PHP-кода:
Код: php
1.
2.
function test(resource $res) : string { return 'OK'; }
PHP Warning:  "resource" is not a supported builtin type and will be interpreted as a class name. Write "\resource" to suppress this warning in...


P.S
. Таким образом, сабжевый вопрос остаётся в силе.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061790
так у тебя же 8я версия?
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061810
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
так у тебя же 8я версия?

И?
В 8-й версии ничего не изменилось.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061872
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061963
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик , а при чём здесь CURL ?
Я понял: вы думали, что тип resource - это ссылка на объект CURL.

Читаем внимательно про resource - там ни слова про CURL.
Вот полный список видов ресурсов .
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40061977
при том, что вот вы писали:
Cyrax_02
В версии 8 тип resource не появился.

а вот вам ответ:
бабушкин зайчик
Код: php
1.
// это работает до версии PHP 8.0.0 так как с версии 8.0 curl_init возвращает объект CurlHandle, а не ресурс


может быть оно относится только к curl, но я подозреваю, что таки к вашему вопросу (ведь типа resource в 8.0 нет).
по-крайней мере, другого ответа я что-то не нашёл.
Да и что curl делает в описании к get_resource_type()...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062028
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа и что curl делает в описании к get_resource_type()... В описании к функции get_resource_type() про CURL не упоминается ни слова. И не упоминается по очень простой причине: функция get_resource_type() и тип resource не имеют отношения к CURL, о чём я уже писал выше. Что касается примеров: невозможно привести пример использования функции без задействования какого-то конкретного вида ресурсов. Если приведён пример использования функции применительно к ресурсу/объекту CURL, это не значит, что функция get_resource_type() или тип resource имеют отношение к CURL.

бабушкин зайчик
а вот вам ответ:
Код: php
1.
// это работает до версии PHP 8.0.0 так как с версии 8.0 curl_init возвращает объект CurlHandle, а не ресурс

Посмотрите повнимательнее, к чему относится этот комментарий. Это не значит, что функция get_resource_type() с версии 8.0 больше не работает. Это не значит, что с версии 8.0 тип resource больше не существует. Это лишь значит, что до версии 8.0 на экземпляр CURL мы ссылались с помощью переменной типа resource , а с версии 8.0 ссылаемся с помощью объекта типа CurlHandle . И всё.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062032
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062082
да не значит, только тип resource всё равно отсутствует.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062116
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчиктолько тип resource всё равно отсутствует. В какой версии отсутствует ?
Насколько я помню, он во всех версиях был и есть. Информации о том, что его собираются упразднить из PHP, пока нет.
Возможно, вы увидели это где-то в комментариях разработчиков, где такая возможность (или предложение) обсуждалась...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062148
да нет, от вас и узнал
я сам то на 7 до сих пор
Cyrax_02
В версии 8 тип resource не появился.
В качестве обходного пути можно не указывать тип вообще, либо указать int .

Но в идеале всё-таки нужен тип resource ...
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062161
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик ,
" не появился " - это не значит, что был удалён.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062267
ну это звучит так, будто его там нет...
Так его там и нет, потому что, если собираетесь передавать в ф-ю некий ресурс, то, по логике, надо писать именно тип из приведённого выше списка, а не "resource"
func(curl &$c)
func(dbx_link_object &$dbx)

я вообще просто передаю func(&$res)
тут же не C++ и не Go
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062331
Cyrax_02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчикТак его там и нет, потому что, если собираетесь передавать в ф-ю некий ресурс, то, по логике, надо писать именно тип из приведённого выше списка, а не "resource"
func(curl &$c)
func(dbx_link_object &$dbx)В приведённом выше списке нет типов. Там приводятся только условные названия типов, которые не являются типами данных PHP.
Соответственно, приведённые вами сигнатуры являются некорректными.
...
Рейтинг: 0 / 0
Сигнатура метода: как объявить тип resource ?
    #40062357
ну это пхп, что с него взять
у него регулярно белое это чёрное, понять и простить.
там написано
автор Список типов ресурсов

Здесь представлен список функций, которые могут создавать, использовать или уничтожать ресурсы PHP. Для определения того, является ли переменная ресурсом можно использовать функцию is_resource(), а функция get_resource_type() поможет получить тип данного ресурса .
соот-но, если get_resource_type() возвращает НЕ тип данного ресурса, а
Cyrax_02
только условные названия типов

тогда просто забейте, и делайте
бабушкин зайчик
я вообще просто передаю func(&$res)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сигнатура метода: как объявить тип resource ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]