PHP传递函数作为参数语法

时间:2013-08-30 04:58:27

标签: php function syntax

有人可以用PHP填写正确的语法吗?我有:

function mainFunction($str,$thingToDoInMain){
   $thingToDoInMain($str);
}

function printStr($str){
    echo $str;
}

mainFunction("Hello",printStr);

我在WAMP上运行此操作并收到错误/警告

  

使用未定义的常量printStr - 在第5行假设'printStr'

...然后我按照需要在页面下方打印出“Hello”。

那么,如何在最后一行中引用函数printStr来摆脱警告?我尝试过$printStrprintStr()$printStr。提前致谢。

2 个答案:

答案 0 :(得分:5)

只需在$函数调用之前添加thingToDoInMain符号,使其成为正确的函数名称,因为thingToDoInMain本身不是函数名称。而$thingToDoInMain中包含的值是函数名称。

<?php
function mainFunction($str,$thingToDoInMain){
     $thingToDoInMain($str);   //Here $ is missing
}

function printStr($str){
    echo $str;
}

mainFunction("Hello","printStr");   // And these quotes
?>

Demo

答案 1 :(得分:1)

在PHP中,函数名称作为字符串传递。

mainFunction("Hello", "printStr");