php调用a";return";来自不同的函数

php调用a";return";来自不同的函数,php,Php,是否可以从不同的函数中调用“return”函数 这样做的目的是我有一个有很多函数的类。。我不想编写一堆代码来确定它们是否应该返回某个值,我只想简单地放置一个类似“validate()”的函数,并在必要时让函数调用返回值,否则继续函数 只是想知道是否有可能做到这一点。你所尝试的是不可能的。检查手册的否,它不是。您必须检查b()返回的内容,如果是真的,则检查a()返回的内容 function a(){ b(1); // Returns true b(0); // Echoes "Ju

是否可以从不同的函数中调用“return”函数

这样做的目的是我有一个有很多函数的类。。我不想编写一堆代码来确定它们是否应该返回某个值,我只想简单地放置一个类似“validate()”的函数,并在必要时让函数调用返回值,否则继续函数


只是想知道是否有可能做到这一点。

你所尝试的是不可能的。检查手册的

否,它不是。您必须检查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;
}