范例1:根据函数名称调用,第一个参数为函数名称
return callinarray("StrToIntDef",array('1234',999));
//返回1234
范例2:调用匿名函数,第一个参数是指向匿名函数的变量
{func1是一个变量,我们将一个函数体赋值给这个变量,变量型函数我们称为匿名函数,匿名函数的语句段放在某个函数体内,调用的时候,需使用call或callinarray函数进行调用。
这个例子中,a是一个变量,当a在func1匿名函数中,并在匿名函数体重修改a,使a:=a+10; ,但执行完匿名函数后,a参数的值是不变的,即不支持变参,所以最后返回a为10,b为20。
callinarray在这里执行匿名函数func1时,其参数不需要跟在func1之后。}
a:=10;
func1 := function(a) begin
a:=a+10;
return a;
end;
b:=callinarray(func1,array(a));
return array(a,b);
//array(10,20)
范例3:根据函数指针调用,第一个参数为函数指针
{thisfunction()函数可获得函数指针;由于调用的是stockzf3,该函数没有参数,因此,callinarray的第二个参数给空数组}
setsysparam(pn_stock(),'SH000001');
return callinarray(thisfunction(stockzf3),array());
范例04:调用时指定参数传参
Function CCC(a,b,c,d);//展示各参数的值
begin
echo "A:",a," B:",b," C:",c," D:",d;
return b;
end;
//调用
return callINArray("CCC",array("b":1,"d":4));
返回:1
打印结果:A:<NIL> B:1 C:<NIL> D:40
解析:callINArray在通过数组传参数时,可以通过指定下标的方式给指定参数进行传参,下标对应函数定义中的变量名。
上面示例中,只对参数b与d进行了传参,其它两参数没有进行传值,所以是nil。
Eval THISFUNCTION Call