LuaSandboxFunction::call
(PECL luasandbox >= 1.0.0)
LuaSandboxFunction::call — Вызывает Lua-функцию
Описание
Вызывает Lua-функцию.
Ошибки, вызванные PHP-кодом, приведут к тому, что функция вернёт
false и будет вызвано предупреждение
E_WARNING, например, когда тип ресурса (resource)
используется в качестве аргумента. При возникновении ошибок Lua будет
выброшено исключение LuaSandboxRuntimeError.
Типы PHP и Lua преобразуются следующим образом:
-
null в PHP - это nil в Lua и наоборот.
-
Целые числа (int) и числа с плавающей точкой
(float) в PHP преобразуются в числа Lua.
Поддерживаются бесконечность и
NAN.
-
Числа Lua без дробной части в диапазоне приблизительно от
-2**53 и 2**53 преобразуются в
целые числа (int) PHP, а другие - в числа PHP с плавающей
точкой (float).
-
Логические значения в PHP (bool) - это значения типа
boolean в Lua и наоборот.
-
Строки в PHP (string) - это значения типа string в Lua и
наоборот.
-
Функции Lua - это объекты PHP LuaSandboxFunction,
и наоборот. Callback-функции PHP (callable) не поддерживаются.
-
Массивы PHP (array) преобразуются в таблицы Lua и наоборот.
-
Обратите внимание, что Lua обычно индексирует массивы с 1, в то время
как PHP индексирует массивы с 0. Никаких корректировок для этих
различных соглашений не делается.
-
Массивы, ссылающиеся сами на себя, не поддерживаются ни в одном из
направлений.
-
Ссылки PHP разыменовываются.
-
__pairs и __ipairs из Lua
обрабатываются. __index игнорируется.
-
При преобразовании из PHP в Lua целочисленные ключи от
-2**53 до 2**53 представляются
как числа в Lua. Все остальные ключи представлены в виде строк Lua.
-
При преобразовании из Lua в PHP отличные от строк и чисел ключи
приведут к возникновению ошибки, как и конфликты при преобразовании
чисел в строки или наоборот (поскольку PHP считает такие конструкции,
как
$a[0] и $a["0"]
эквивалентными).
-
Все остальные типы не поддерживаются и вызовут ошибку/выбросят исключение,
включая PHP-объекты (object), пользовательские данные Lua и
типы потоков.
Функции Lua по своей сути возвращают список результатов. Таким образом,
в случае успешного выполнения этот метод возвращает массив (array),
содержащий все значения, возвращаемые Lua, с целочисленными ключами
(int), начинающимися с нуля. Lua может не возвращать результатов,
и в этом случае возвращается пустой массив.
Список параметров
args
-
Аргументы, передаваемые в функцию.
Возвращаемые значения
Возвращает массив значений (array), возвращаемых функцией,
который может быть пустым или false, если возникла ошибка.