LuaSandboxFunction::call
En esta página
LuaSandboxFunction::call
Llama a una función Lua
Descripción#
php
public LuaSandboxFunction::call(string ...$args): arrayphp
Llama a una función Lua.
Los errores considerados como culpa del código PHP harán que la función devuelva el valor false y emita E_WARNING, por ejemplo, un tipo resource utilizado como argumento. Los errores Lua lanzarán una excepción LuaSandboxRuntimeError.
Los tipos PHP y Lua se convierten de la siguiente manera:
-
Los
nullde PHP son Luanil, y viceversa. -
Los
ints de PHP yfloats se convierten en números Lua. El infinito yNANson soportados. -
Los números Lua sin parte fraccionaria entre aproximadamente
-2**53y2**53se convierten enints PHP, los demás se convierten enfloats PHP. -
Los
bools de PHP son booleanos Lua, y viceversa. -
Los
strings de PHP son cadenas Lua, y viceversa. -
Las funciones Lua son objetos PHP
LuaSandboxFunction, y viceversa. Loscallables PHP generales no son soportados. -
Los
arrays de PHP se convierten en tablas Lua, y viceversa. -
Se debe tener en cuenta que Lua indexa típicamente los arrays a partir de 1, mientras que PHP indexa los arrays a partir de 0. No se hace ningún ajuste para estas diferentes convenciones.
-
Los arrays auto-referenciales no son soportados en ambos sentidos.
-
Las referencias PHP son desreferenciadas.
-
Los
__pairsy__ipairsde Lua son tratados.__indexes ignorado. -
Al convertir de PHP a Lua, las claves enteras entre
-2**53y2**53se representan como números Lua. Todas las demás claves se representan como cadenas Lua. -
Al convertir de Lua a PHP, las claves distintas de las cadenas y los números enteros resultarán en un error, así como las colisiones al convertir números en cadenas o viceversa (ya que PHP considera cosas como
$a[0]y$a["0"]como equivalentes). -
Todos los demás tipos no son soportados y resultarán en un error/excepción, incluyendo los
objects PHP generales y los tipos userdata y thread Lua.
Las funciones Lua devuelven intrínsecamente una lista de resultados. Por lo tanto, en caso de éxito, este método devuelve un array que contiene todos los valores devueltos por Lua, con claves int comenzando en cero. Lua puede no devolver ningún resultado, en cuyo caso se devuelve un array vacío.
Parámetros#
args
Los argumentos pasados a la función.
Valores devueltos#
Devuelve un array de los valores devueltos por la función, que puede estar vacío, o false si ocurre un error.