调用未定义的函数问题

时间:2014-07-10 06:33:22

标签: php

所以我一直在尝试测试,因为最近我在一个迷你项目中失败了,我在if语句中创建了一个函数并尝试使用它。我尝试在if结构中和if结构之外使用它,但每次PHP都给我一个错误,说'&34;调用未定义的函数"。

require 'testing.php';

if(isset($_POST['submit'])){
 if(isset($_POST['name']) && !empty($_POST['name'])){
  if(!strpbrk($_POST['name'],'/[!@#$%^*}{};:?/')){

   $name = htmlentities($_POST['name']);

   function test($thename){
    echo $name;
   }

   test($name);
   }else{
    echo 'Please only submit alphanumeric values and underscores.';
   }
    }else{
     echo 'Please enter a name.';
    }
}

1 个答案:

答案 0 :(得分:0)

您可能会在test内拨打testing.php。简单的说法就是在您显示的文件中注释掉test($name);的调用并观察相同的错误。

如果您希望testing.php中的代码利用外部定义的test函数,则需要在加载test之前定义testing.php

function test($name){ // @note Fix the parameter too..
  echo $name;
}
require 'testing.php';

if(isset($_POST['submit'])){
 if(isset($_POST['name']) && !empty($_POST['name'])){
  if(!strpbrk($_POST['name'],'/[!@#$%^*}{};:?/')){

   $name = htmlentities($_POST['name']);

   test($name);
   }else{
    echo 'Please only submit alphanumeric values and underscores.';
   }
    }else{
     echo 'Please enter a name.';
    }
}