您好我想知道如何调用我刚刚从URL写的函数? 贝娄是我的PHP代码。
<?php
require 'db.php';
function l1(){
echo "Hello there!";
}
function l2(){
echo "I have no Idea what Im doing!";
}
function l3(){
echo "I'm just a year 1 college student dont torture me sir!";
}
?>
我尝试了http://127.0.0.1/study/sf.php?function=l1,但它不会回应书面代码。
请指出正确的方向。
答案 0 :(得分:3)
是的,你可以提供该参数来调用用户定义的函数:
$func = $_GET['function'];
$func();
过滤您定义的那些
function l1(){
echo "Hello there!";
}
function l2(){
echo "I have no Idea what Im doing!";
}
function l3(){
echo "I'm just a year 1 college student dont torture me sir!";
}
$functions = $arr = get_defined_functions()['user']; // defined functions
if(!empty($_GET['function']) && in_array($_GET['function'], $functions)) {
$func = $_GET['function'];
$func();
}
旁注:function_exists
也可以应用:
if(!empty($_GET['function']) && function_exists($_GET['function'])) {
// invoke function
}
答案 1 :(得分:0)
如果使用/ elseifs就可以使用一个选项:
if($_GET['function'] == 'l1')
{
l1();
}
else if($_GET['function'] == 'l2')
{
l2();
}
或者您可以使用风险更高的方法并直接从输入中调用函数名称。
$functionName = $_GET['function'];
$functionName();
编辑: 或者您可以使用switch语句:
switch($_GET['function'])
{
case 'l1':
l1();
break;
case 'l2':
l2();
break;
case 'l3':
l3();
break;
}