![]() |
Common Language Extension(CLE) |
|||
For php calls lua, here presents a new method, which ues cle developed by srplab. A function “Add” is defined in lua which returns the sum of two input integers. The function also calls php method “Show” to print the result. There are three steps: 1. Init cle, create service group, and create service. 2. Create interface object, and defines a new function “Add” of it. 3. Write function code of Add.
require "libstarcore"
--Step1 : Init cle, create service group,
and create service
Service =
libstarcore._InitSimple("AddFunctionService","123",0,0);
--Step2 : Create interface object, and
define function Add
Obj=Service:_New("TestClass");
--Step3 : Add function code
function Obj:Add(x,y)
--call back to script function
self:Show(x+y);
return
x+y;
end
For php code calls the above lua file, there are three steps; 1. Init cle, create service group,import lua file, and create service. 2. Create Instance of object “TestClass” defined in lua. 3. Call function “Add”.
<?php
Step 1 : Init cle, create service group,import lua file, and create service.
$starcore = new StarCoreFactory();
$Service=$starcore->_InitSimple("test","123",0,0,"AddFunctionService.lua");
Step 2: Create Instance of object “TestClass” defined in lua.
$a =
$Service->TestClass->_New();
function a_Show($self,$Para)
{
echo
"from php call back" ,$Para,"\n";
}
$a
-> Show = "a_Show";
Step 3: call function “Add”
$Result = $a->Add(12,34);
echo
"Add returns : ",$Result,"\n";
$Service->_ServiceGroup->_ClearService();
$starcore->_ModuleExit();
?>
Run : php –f php_call.php |
| examples code download |
| Copywright (C) 2005 www.SRPLab.com(Star-River Platform Lab.) All Rights Reserved | Email:support@srplab.com |