Разделы

2.7.4. Вызов функции

Синтаксис:

name_func(arg_list);

Для начала необходимо указать имя функции. Сама функция может находиться в любом доступном пространстве имен (то есть в любой доступной таблице). Правила обращения к функции (для вызова) в таблицах стандартны.
Далее следует открывающая скобка, после нее список аргументов через запятую, где аргументом может быть любое простое выражение, после аргументов закрывающая скобка.
При вызове функции в момент присвоения переменной данных в таблице, в случае, если функция не возвращает аргументы, переменной будет присвоено значение null:

$table = {$var1 = func()};

Если func не вернет значения то table.var1 будет присвоено null.
То же самое произойдет и в случае, когда вызов функции используется для получения аргумента:

func(func2());

Первому аргументы будет присвоено null если func2 не вернет значений.
По умолчанию каждая функция возвращает значение. Если этого не происходит, то при завершении работы функции она возвращает null.
Передавать можно только одно значение.
s4g поддерживает рекурсивные вызовы функций. Максимальная вложенность вызовов регулируется макроопределением S4G_MAX_CALL которое определено в файле s4g.h. На стек вызовов исполняющей программы это никак не влияет, виртуальная машина s4g обеспечивает независимость своего стека вызовов.