LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call调用 Lua 函数

说明

public LuaSandboxFunction::call(string ...$args): array|bool

调用 Lua 函数。

被认为是 PHP 代码错误的错误将导致函数返回 false 并引发 E_WARNING,例如,resource 类型被用作参数。Lua 错误将导致抛出 LuaSandboxRuntimeError 异常。

PHP 和 Lua 类型按如下方式转换

  • PHP null 是 Lua nil,反之亦然。

  • PHP intfloat 转换为 Lua 数字。支持无穷大和 NAN

  • Lua 数字在约 -2**532**53 之间没有小数部分,将转换为 PHP int,其他将转换为 PHP float

  • PHP bool 是 Lua 布尔值,反之亦然。

  • PHP string 是 Lua 字符串,反之亦然。

  • Lua 函数是 PHP LuaSandboxFunction 对象,反之亦然。不支持一般的 PHP callable

  • PHP array 转换为 Lua 表,反之亦然。

    • 请注意,Lua 通常从 1 开始索引数组,而 PHP 从 0 开始索引数组。没有对这些不同的约定进行调整。

    • 不支持任何方向的自引用数组。

    • PHP 引用被解引用。

    • 处理 Lua __pairs__ipairs。忽略 __index

    • 从 PHP 转换为 Lua 时,-2**532**53 之间的整数键表示为 Lua 数字。所有其他键都表示为 Lua 字符串。

    • 从 Lua 转换为 PHP 时,除了字符串和数字之外的键将导致错误,数字转换为字符串或反之亦然时也会发生冲突(因为 PHP 认为 $a[0]$a["0"] 相当)。

  • 所有其他类型均不受支持,将引发错误/异常,包括一般的 PHP object 和 Lua 用户数据和线程类型。

Lua 函数本质上返回一个结果列表。因此,在成功的情况下,此方法返回一个包含 Lua 返回的所有值的 array,其中 int 键从零开始。Lua 可能不返回任何结果,在这种情况下,将返回一个空数组。

参数

args

传递给函数的参数。

返回值

返回函数返回的 array 值,它可能是空的,或者在失败时为 false

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top