(PECL luasandbox >= 1.0.0)
LuaSandboxFunction::call — Chama uma função Lua
Chama uma função Lua.
Erros considerados como falha do código PHP resultarão na função
retornando false
e E_WARNING
sendo emitido, por exemplo, um tipo resource sendo usado como um
argumento. Erros Lua resultarão em uma exceção LuaSandboxRuntimeError
sendo lançada.
Os tipos PHP e Lua são convertidos da seguinte forma:
O null
do PHP é nil
no Lua, e vice-versa.
int e float no PHP são convertidos para números
Lua. Infinito e NAN
são suportados.
Números Lua sem uma parte fracionária entre aproximadamente -2**53
e 2**53
são convertidos para ints do PHP, com outros
sendo convertidos para floats do PHP.
bools do PHP são booleanos do Lua, e vice-versa.
strings do PHP são strings do Lua, e vice-versa.
Funções do Lua são objetos LuaSandboxFunction do PHP, e vice-versa. Tipos callable do PHP em geral não são suportados.
arrays do PHP são convertidos para tabelas do Lua, e vice-versa.
Note que Lua normalmente indexa arrays a partir de 1, enquanto o PHP indexa arrays a partir de 0. Nenhum ajuste é feito para essas convenções diferentes.
Arrays autorreferenciais não são suportadas em nenhuma direção.
Referências PHP são desreferenciadas.
__pairs
e __ipairs
do Lua são processados
__index
é ignorado.
Ao converter de PHP para Lua, chaves inteiras entre
-2**53
e 2**53
são representadas
como números Lua. Todas as outras chaves são representadas como strings Lua.
Ao converter de Lua para PHP, chaves diferentes de strings e
números resultarão em erro, assim como colisões ao converter
números em strings ou vice-versa (já que o PHP considera coisas como
$a[0]
e $a["0"]
como sendo equivalentes).
Todos os outros tipos não são suportados e gerarão um erro/exceção, incluindo objects PHP em geral e tipos de thread e userdata do Lua.
As funções Lua retornam inerentemente uma lista de resultados. Então, em caso de sucesso, este método retorna um array contendo todos os valores retornados por Lua, com chaves int começando a partir de zero. Lua pode não retornar nenhum resultado, nesse caso um array vazio é retornado.
args
Argumentos passados para a função.