php的变量在声明和使用的时候变量名前必须加?PHP定义了在PHP中声明函数的变量
php函数使用外部变量的几种情况。使用外部全局定义函数,通过$GLOBALS数组引用全局$ mytext$mytext='外部使用全局定义';函数test(){ echo $GLOBALS['myt
顺晟科技
2022-11-30 09:32:12
129
所谓回调函数,就是当一个函数被调用时,不是将一个标准变量作为参数传递,而是将另一个函数作为参数传递给被调用的函数。如果回调类型的参数出现在函数的格式描述中,则该函数是回调函数。上一节介绍了php变量参数的作用,本节进入php回调函数的学习。
回调的格式描述如下:mixed funName (callback arg) //在参数列表中使用伪类型回调描述。
回调在PHP中也是伪类型,这意味着一个函数的参数需要接受另一个函数作为参数。一个很重要的问题是为什么要用函数做参数?如前所述,调用函数的执行行为可以通过传递参数来改变,但有时只向函数传递一个值的能力是有限的。如果能把一个自定义的执行过程传递给一个函数,会大大增加用户对该函数的扩展。如何声明和使用回调函数也是一个关键问题。如果需要声明一个回调函数,首先需要知道变量函数。
可变函数
变量也叫可变函数。如果变量名后跟括号,PHP将寻找与变量名同名的函数,并尝试执行它。例如,声明一个函数test()并将函数名string test赋给变量$demo。如果直接打印$demo变量,输出值必须是字符串test;但是,如果在$demo变量后添加括号$demo(),则调用与$demo变量test的值对应的函数。这样就可以给同一个变量赋不同的函数名,然后通过变量调用函数,类似于面向对象中多态性的应用。
示例代码如下:服务器端编程语言(专业超文本预处理器的缩写)
一个功能($a,$b){
返回$ a $ b;
}
两个功能($a,$b){
返回$ a * $ b;
}
三个功能($a,$b){
返回$ a/$ b;
}
$result=' one//将函数名one赋给变量$result,执行$result()时调用函数one()。
//$ result=' two ';//将函数名two赋给变量$result,执行$result()时调用函数two()。
//$ result=' three ';//将函数名three赋给变量$result,执行$result()时调用函数three()。
Echo '结果是:'。$result(4,6);//变量$result接收哪个函数名的值,调用哪个函数。
?
在上面的示例中,声明了三个函数one()、two()和three(),分别用于计算两个数的和、积和商。将三个函数的函数名(不带括号)以字符串的形式赋给变量$result,然后用变量名$result后跟括号传入两个整型参数,就会发现执行的是与变量$result的值同名的函数。大多数函数都可以给变量赋函数名,形成变量函数。但是变量函数不能用在语言结构中。
使用变量函数声明和应用回调函数。
如果你想自定义一个可以回调的函数,可以选择使用变量函数来帮助你实现。定义回调函数时,函数声明的结构保持不变,只要声明的参数是普通变量。但是,在函数内部应用这个参数变量时,如果加上括号,就可以调用与这个参数值同名的函数,所以为它传递的参数必须是另一个函数的名称字符串。使用回调函数的目的是将自定义函数传递给内部使用的函数。
代码示例如下:服务器端编程语言(专业超文本预处理器的缩写)
//声明一个回调函数过滤器,通过自定义条件过滤掉0到10之间不需要的数字。
函数过滤器($fun){
for($ I=0;$ i=10$i ){
//给参数变量$fun加一个括号$fun(),然后调用与变量$fun值同名的函数。
if($fun($i))
继续;
echo $ I。" ";
}
}
//声明一个函数one,如果参数是3的倍数,则返回TRUE,否则返回false。
功能一(数字){
return $ num % 3==0;
}
//声明一个函数二,如果参数是回文,则返回TRUE,否则返回false。
功能2(数字){
return $ num==strrev($ num);
}
过滤器(“一”);//打印出10以内的3的倍数。参数一是函数一()的名称字符串,wh
过滤器(“两个”);//打印出10以内的非回文个数。参数二是函数二()的名称字符串,它是一个回调函数。
?
操作的结果是:
在上面的例子中,如果声明的函数filter()只接受普通值作为参数,那么用户可以筛选出来的数量就会相对单一。在这个例子中,定义的函数filter()调用了一个含税参数作为过滤条件,这使得函数更加强大。你可以在filter()函数中过滤掉任何你不喜欢的数字。通过给函数filter()内部的参数变量$fun添加一个括号$fun(),可以调用与变量$fun值相同的函数作为过滤条件。例如,在这个示例中,声明了两个函数one()和two(),分别用于过滤掉3的倍数和10以内的回文。只要在调用filter()时将函数名一和两个字符串传递给参数,这两个函数就会传递给filter()函数内部使用。
本章讲解php回调函数的变量函数的定义、声明和应用。下一章我们将介绍php回调函数的call_user_func_array()函数及其用法。
【相关教程推荐】
30
2022-11
30
2022-11
30
2022-11
30
2022-11
30
2022-11
30
2022-11