Форум OlegON > Разговоры на отвлеченные темы > Беседка

Обсуждение вопросов для Капитана : Беседка

01.05.2024 4:00


13.04.2023 18:21
OlegON
 
Суть в том, что в PHP7 этот код (упрощенный код форума) работал. В PHP8 оно сообщает, что вообще бинарное & между массивом и int нельзя делать, что вообще-то правильно.
"PHP message: PHP Fatal error: Uncaught TypeError: Unsupported operand types: array & int"
Я пытался понять, как мне теперь переписать то, что есть и тут перестал понимать происходящее совсем.
То есть, берем массив [0,0,0] и число 1, делаем им бинарное AND, в итоге получаем 1. %$#, почему?! Попытался спросить у бота, он именно наркотическое что-то понес...
13.04.2023 18:40
vdm
 
Ну пишут что в бинарных операциях массив приводится к 0/1 по принципу есть элементы / нет. Что там в самих элементах без разницы.
13.04.2023 18:52
raidex
 
Массив & 1 может быть равен 1 в случае, если оно берёт не значение элемента массива, а адрес этого массива ( ссылку на размещение массива в памяти )

Но это я просто так думаю, как оно на самом деле работает, я не знаю
13.04.2023 18:53
raidex
 
Цитата:
vdm Ну пишут что в бинарных операциях массив приводится к 0/1 по принципу есть элементы / нет. Что там в самих элементах без разницы.
Ааа, т.е. массив не пустой = true

True & 1 = 1

Теперь понятно
13.04.2023 19:03
vdm
 
Цитата:
raidex массив не пустой = true
В данном случае не так. True/false был бы получен в логической операции &&. А в бинарной & именно целое число.
13.04.2023 19:03
OlegON
 
Благодарю, тут и у меня просветление настало.
Действительно, видимо, раньше подразумевалась обертка в при таких операциях.
"Целое значение переменной value в случае успешного выполнения, или 0 в случае неудачи. Для пустых массивов возвращается 0, для непустых возвращается 1."
16.05.2023 08:28
raidex
 
https://olegon.ru/showpost.php?p=393181&postcount=2

Это почему он вдруг решил перевести

Кстати, Олег, все говорят, что по api выдают версию 3.5 максимум

Это я тебе про то, что настоящий чат гпт всё же лучше чем капитан ( молодее )
16.05.2023 08:50
OlegON
 
Я сравнивал и не увидел преимущества 4 версии... Только тормознее... У неё есть преимущества в картинках или чем-то там дополнительном, а в ответах на вопросах не увидел.
А почему в перевод ударился - вообще не понимаю... С ним часто странные вещи происходят.
Часовой пояс GMT +3, время: 04:00.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.