Luar is a Lua interpreter written in PHP.
Luar implements a reduced version of Lua and also packages some essential Lua libraries. As such Luar offers forward-compatibility with Lua with some minor caveats:
- The math/string libraries use PHP number/string handling; much of the edge-case behaviour has not been replicated (e.g. division by zero, integer overflow)
- Not all core functions and libraries are available, but a method is provided to inject your own
- Some language constructs are not implemented (e.g. variable attributes, go-to statements)
composer require raudius/luar
For more details read the documentation.
$luar = new Luar();
$luar->assign('world', 'Moon');
$luar->assign('hello_world', function ($name='world') {
return "Hello, $name!";
});
$program = '
local greeting = hello_world(world)
print(greeting)
return greeting
';
$greeting = $luar->eval($program);