php调用a";return";来自不同的函数
是否可以从不同的函数中调用“return”函数 这样做的目的是我有一个有很多函数的类。。我不想编写一堆代码来确定它们是否应该返回某个值,我只想简单地放置一个类似“validate()”的函数,并在必要时让函数调用返回值,否则继续函数php调用a";return";来自不同的函数,php,Php,是否可以从不同的函数中调用“return”函数 这样做的目的是我有一个有很多函数的类。。我不想编写一堆代码来确定它们是否应该返回某个值,我只想简单地放置一个类似“validate()”的函数,并在必要时让函数调用返回值,否则继续函数 只是想知道是否有可能做到这一点。你所尝试的是不可能的。检查手册的否,它不是。您必须检查b()返回的内容,如果是真的,则检查a()返回的内容 function a(){ b(1); // Returns true b(0); // Echoes "Ju
只是想知道是否有可能做到这一点。你所尝试的是不可能的。检查手册的否,它不是。您必须检查b()返回的内容,如果是真的,则检查a()返回的内容
function a(){
b(1); // Returns true
b(0); // Echoes "Just some output"
}
function b($i_feel_like_it){
if($i_feel_like_it){
return return true;
}else{
echo "Just some output";
}
}
简而言之,否。 谢天谢地,允许这样做会使它成为一种非常奇怪的语言,您可能不会依赖于任何函数的返回 但是,您可以抛出异常。通过这种方式,您可以让被调用的方法影响被调用方中的流控制——不过,不要过度使用它们来实现这一点,因为这样做太多,代码可能会变得非常难看 下面是一个关于如何使用异常进行验证的示例:
function a() {
if (b(1) === true)
return true; // Makes a() return true
if (b(0) === true)
return true; // Makes a() echo "Just some output"
}
function b($i_feel_like_it) {
if ($i_feel_like_it){
return true;
} else {
echo "Just some output";
}
}
模板间隙
class ValidationException extends Exception { }
function checkNotEmpty($input) {
if (empty($input)){
throw new ValidationException('Input is empty');
}
return $input;
}
function checkNumeric($input) {
if (!is_numeric($input)) {
throw new ValidationException('Input is not numeric');
}
return $input;
}
function doStuff() {
try {
checkNotEmpty($someInput);
checkNumeric($otherInput);
// do stuff with $someInput and $otherInput
} catch (ValidationException $e) {
// deal with validation error here
echo "Validation error: " . $e->getMessage() . "\n";
}
}
麻烦就在你的脑子里…如果你想
a()
从b(1)
的true返回true,那么你可以使用返回a()代码>我知道如何使它工作。。我只是不想为40个函数编写重复的代码。。虽然只是几行,但我想知道这是否可能我完全同意。但是不可能。如果b(1)可以返回“return true”并使函数a()调用“return true”,这就是为什么。我只是想知道这是否可能,但显然不是。我知道return是如何工作的,我只是想知道是否有任何东西可以实现它。我看这个例子不是很好。这是因为你所尝试的是不可能的。如果你知道,你就不会问这个问题给我一秒钟,我将添加到文档的链接。。。。经常阅读文档,即使是再看一次基本的东西,都会让你明白我在用“return true”作为我想要完成的一个例子。显然,这是行不通的,我已经知道99%不可能做到这一点,我只是在想,也许有一些我不知道的PHP技巧可以做到这一点。但是无论如何,谢谢如果你想让被调用的函数影响调用它们的函数的流控制,这是一个异常的用例。我添加了一个使用exception进行验证的示例,看看这是否有帮助。我有大约40个函数返回一些值。。我有另一个函数可以“覆盖”这些值。调用这些函数时,我需要一个简单的“check_overwrited_value()”来返回被覆盖的值,或者如果找不到,只需继续。我知道如何使用两行代码,我只是不想在40个函数中重复相同的代码是的,但是你知道,这是一个设计问题,不是语言问题。没关系,你事先不知道你想要做什么,然后你做了一些函数并调用它们。但是现在你知道你想要什么了,这和你制作它的方式有点不同,我想这是你改变它的时候了,我不想寻找另一条捷径。我意识到这是一个设计缺陷,我在写这个类的时候没有预见到会这样做,但我还是找到了解决办法。我知道通过良好的设计可以消除这些问题,但我只是想知道php中是否存在这样的问题。。我不知道为什么仅仅问一个简单的问题就这么糟糕对不起,我并不是故意说得太挑剔。问这些问题很好——我只是想提供一些指导,我以前也遇到过类似的情况,寻找捷径的结果更糟。冷静点!:)此外,您可以用找到的解决方案在这里回答您的问题。这没有任何意义,除了一些未定义的变量警告之外,这里应该发生什么?假设您已经定义了c()
。。。
function a()
{
b();
return $a;
}
function b()
{
c();
return $b;
}