# LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Appelle une fonction Lua

### Description

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

Appelle une fonction Lua.

Les erreurs considérées comme étant de la faute du code PHP entraîneront le retour de la fonction avec la valeur `false` et l'émission de `E_WARNING`, par exemple, un type resource utilisé comme argument. Les erreurs Lua entraîneront le lancement d'une exception LuaSandboxRuntimeError.

Les types PHP et Lua sont convertis comme suit :

- Les `null` de PHP est Lua `nil`, et vice versa.

- Les ints de PHP et floats sont convertis en nombres Lua. L'infini et `NAN` sont supportés.

- Les nombres Lua sans partie fractionnaire entre environ `-2**53` et `2**53` sont convertis en ints PHP, les autres sont convertis en floats PHP.

- Les bools de PHP sont des booléens Lua, et vice versa.

- Les strings de PHP sont des chaînes Lua, et vice versa.

- Les fonctions Lua sont des objets PHP LuaSandboxFunction, et vice versa. Les callables PHP généraux ne sont pas supportés.

- Les arrays de PHP sont convertis en tables Lua, et vice versa.

  - Il est à noter que Lua indexe typiquement les tableaux à partir de 1, tandis que PHP indexe les tableaux à partir de 0. Aucun ajustement n'est fait pour ces conventions différentes.

  - Les tableaux auto-référentiels ne sont pas supportés dans les deux sens.

  - Les références PHP sont déréférencées.

  - Les `__pairs` et `__ipairs` de Lua sont traités. `__index` est ignoré.

  - Lors de la conversion de PHP en Lua, les clés entières entre `-2**53` et `2**53` sont représentées comme des nombres Lua. Toutes les autres clés sont représentées comme des chaînes Lua.

  - Lors de la conversion de Lua en PHP, les clés autres que les chaînes et les nombres entraîneront une erreur, tout comme les collisions lors de la conversion de nombres en chaînes ou vice versa (puisque PHP considère des choses comme `$a[0]` et `$a["0"]` comme étant équivalentes).

- Tous les autres types ne sont pas supportés et entraîneront une erreur/exception, y compris les objects PHP généraux et les types userdata et thread Lua.

Les fonctions Lua retournent intrinsèquement une liste de résultats. Donc, sur succès, cette méthode retourne un array contenant toutes les valeurs retournées par Lua, avec des clés int commençant à zéro. Lua peut ne retourner aucun résultat, auquel cas un tableau vide est retourné.

### Liste de paramètres

`args`

  Les arguments passés à la fonction.

### Valeurs de retour

Renvoie un array des valeurs retournées par la fonction, qui peut être vide, ou `false` si une erreur survient.