Php 如何通过另一个函数返回一个函数
我打算创建一个checker函数,它将被其他函数使用。想法很简单:如果条件没有满足,通过返回函数来停止函数 这是原始代码:Php 如何通过另一个函数返回一个函数,php,wordpress,function,return,Php,Wordpress,Function,Return,我打算创建一个checker函数,它将被其他函数使用。想法很简单:如果条件没有满足,通过返回函数来停止函数 这是原始代码: function awesome(){ $a = "2"; if ($a != "1"){return;} echo "awesome"; } 成功了。因为$a是2,所以返回函数,并且没有出现单词“awesome”。但是,有几个功能需要检查。为了避免重复,我这样做: function test($var){ if ($var != "
function awesome(){
$a = "2";
if ($a != "1"){return;}
echo "awesome";
}
成功了。因为$a是2,所以返回函数,并且没有出现单词“awesome”。但是,有几个功能需要检查。为了避免重复,我这样做:
function test($var){
if ($var != "1"){return;}
}
function awesome(){
test("2");
echo "awesome";
}
function awesomeagain(){
test("3");
echo "awesome";
}
但是出现了单词“awesome”,并且函数awesome()和awesomethere()都没有返回。如何通过添加test()函数返回这两个函数
多谢各位。非常感谢您的帮助。要从函数返回,您必须使用
return
关键字
function test($var){
if ($var == "1"){
return TRUE;
}
}
function awesome(){
if (!test("2")){
return FALSE;
}
echo "awesome";
return TRUE;
}
就这样!PHP太棒了!:) 您的
test
函数必须返回一个值,您必须在其他函数中测试该值。大概是这样的:
function test($var) {
if ($var != "1")
return false;
else
return true;
}
function awesome() {
if (test("2"))
echo "awesome";
}
function test($var) {
if ($var != "1")
throw new Exception();
}
因此,您的代码应该如下所示:
function test($var) {
if ($var != "1")
return false;
else
return true;
}
function awesome() {
if (test("2"))
echo "awesome";
}
function test($var) {
if ($var != "1")
throw new Exception();
}
但是,如果您想热衷于检查,可以抛出异常。这应该是这样的:
function test($var) {
if ($var != "1")
return false;
else
return true;
}
function awesome() {
if (test("2"))
echo "awesome";
}
function test($var) {
if ($var != "1")
throw new Exception();
}
以及在其他功能中使用
function awesome() {
try {
test("2");
echo "yeah";
} catch ($e) {}
}
fy您可能不应该依赖另一个函数来停止另一个函数窗体的运行。试试这个
function test($var){
if ($var != "1"){return false;} return true;
}
function awesome(){
if(test("2"))
echo "awesome";
}
function awesomeagain(){
if(test("3"));
echo "awesome";
}
Fikry,尝试重新学习
条件的概念,这是基本的编程技巧。如果没有它,您将生成许多错误代码和函数。哇,谢谢!“test()”是有效的,但我对“awome()”做了一点修改,所以代码是这样的:“if(test(“2”)==true)”,然后它像一个符咒一样工作:在php中,好的做法是检查值和类型,所以使用if(test(“2”)==true),因为在php中这将返回true(“2”==true),但是(“2”==true)将返回false。感谢您的回复,它与之前的响应非常相似,只需做一个非常小的修改,它就起作用了:Dhmm。。我不这么做,因为动作会放在awesome()和awesome()上,而这些动作是不同的。顺便说一句,是的,PHP很棒。感谢您的回复:谢谢您的编辑。我是新来的,仍然对格式感到困惑。