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";
}
}
是否可以从不同的函数中调用“返回”函数?
这个目的是我有一个有很多函数的类..而不是编写一堆代码来确定它们是否应该返回一些值,我想简单地放一个像“validate()”这样的函数并且有如果需要,函数调用return,否则继续使用函数。
只是想知道是否可以这样做。
答案 0 :(得分:3)
简而言之,否。 谢谢天哪,允许这会使它成为一种非常奇怪的语言,你可能不会依赖任何函数的返回。
但是,您可以抛出异常check out the manual。这样你就可以让被调用的方法影响被调用者中的流控制 - 尽量不要过度使用它们来执行此操作,因为代码可能会因为太多而变得非常难看。
以下是如何使用例外进行验证的示例:
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";
}
}
答案 1 :(得分:2)
不,不是。你必须检查b()返回什么,如果是真的话,从()返回。
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";
}
}
答案 2 :(得分:1)
你所尝试的是不可能的。查看return
答案 3 :(得分:0)
模板差距。
function a()
{
b();
return $a;
}
function b()
{
c();
return $b;
}
麻烦在你的脑海里......
答案 4 :(得分:0)
如果您希望a()
从b(1)
返回true,那么您可以使用return a();