LuaSandbox LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — 루아 함수 호출


설명

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

Lua 함수를 호출합니다.

PHP 코드의 오류로 간주되는 오류는 함수가 false를 반환하고 E_WARNING이 발생하게 합니다(예: 리소스 유형이 인수로 사용됨). Lua 오류는 LuaSandboxRuntimeError 예외를 발생시킵니다.

PHP 및 Lua 유형은 다음과 같이 변환됩니다.

  • PHP null은 Lua nil이며 그 반대도 마찬가지입니다.
  • PHP int와 float는 Lua 숫자로 변환됩니다. Infinity 및 NAN이 지원됩니다.
  • -2**53에서 2**53 사이의 소수 부분이 없는 루아 숫자는 PHP 정수로 변환되고 다른 숫자는 PHP 부동 소수점으로 변환됩니다.
  • PHP bool은 Lua boolean이고 그 반대의 경우도 마찬가지입니다.
  • PHP 문자열은 Lua 문자열이며 그 반대도 마찬가지입니다.
  • Lua 함수는 PHP LuaSandboxFunction 객체이며 그 반대의 경우도 마찬가지입니다. 일반 PHP callable은 지원되지 않습니다.
  • PHP 배열은 Lua 테이블로 변환되며 그 반대의 경우도 마찬가지입니다.
    • Lua는 일반적으로 1부터 배열을 인덱싱하는 반면 PHP는 0부터 배열을 인덱싱합니다. 이러한 다른 규칙에 대한 조정은 수행되지 않습니다.
    • 자기 참조 배열은 어느 방향으로도 지원되지 않습니다.
    • PHP 참조는 역참조됩니다.
    • Lua __pairs__ipairs가 처리됩니다. __index는 무시됩니다.
    • PHP에서 Lua로 변환할 때 -2**53에서 2**53 사이의 정수 키는 Lua 숫자로 표시됩니다. 다른 모든 키는 Lua 문자열로 표시됩니다.
    • Lua에서 PHP로 변환할 때 문자열과 숫자 이외의 키를 사용하면 오류가 발생하고 숫자를 문자열로 변환하거나 그 반대로 변환할 때 충돌이 발생합니다(PHP는 $a[0]$a["0"] 같은 것을 다음과 같이 간주하기 때문에 동등함).
  • 다른 모든 유형은 지원되지 않으며 일반 PHP 개체와 Lua 사용자 데이터 및 스레드 유형을 포함하여 오류/예외가 발생합니다.

Lua 함수는 본질적으로 결과 목록을 반환합니다. 따라서 성공하면 이 메서드는 0에서 시작하는 int 키를 사용하여 Lua에서 반환한 모든 값을 포함하는 배열을 반환합니다. Lua는 결과를 반환하지 않을 수 있으며, 이 경우 빈 배열이 반환됩니다.


매개변수

args
함수에 전달된 인수입니다.

반환 값

비어 있거나 오류가 발생하면 false일 수 있는 함수에서 반환된 값의 배열을 반환합니다.