Здравствуйте, я хотел бы знать, как вызвать функцию, которую я только что написал из 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 но это не повторяет написанный код.
Пожалуйста, укажите мне правильное направление.
Да, вы можете указать этот параметр для вызова вашей пользовательской функции:
$func = $_GET['function'];
$func();
Можно также отфильтровать те, которые вы определили через get_defined_functions
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
}
Один вариант, который вы можете сделать, если использовать if / 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;
}