PHP Conference Japan 2024

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call调用Lua函数

描述

public LuaSandboxFunction::call(字符串 ...$args): 数组|布尔值

调用一个Lua函数。

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

PHP和Lua类型转换如下:

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

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

  • 没有小数部分的Lua数字,其值大约在-2**532**53之间,将转换为PHP 整数;其他数字将转换为PHP 浮点数

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

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

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

  • PHP 数组转换为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 对象以及Lua用户数据和线程类型。

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

参数

args

传递给函数的参数。

返回值

返回一个数组,其中包含函数返回的值,该数组可能为空,或者在失败时返回false

添加注释

用户贡献的注释

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