我在php中有一些类有一些方法。
一个公共方法调用受保护的方法。如果受保护的方法返回false,则public方法返回false而不是继续吗?
public static function a() {
$class = getClass();
// some more code...
}
protected static function getClass() {
$classList = self::find_by_sql("
SELECT *
FROM ".self::$table_name."
WHERE Class_Closed = FALSE
ORDER BY Start_Date ASC
;");
if (empty($classList)) {
return false;
} else {
return $classList[0];
}
}
答案 0 :(得分:3)
没有。 return
不是一个例外,并且没有冒泡。如果您没有明确地拥有return
,那么就会隐含return null;
:
php > function foo() { }
php > var_dump(foo());
NULL
php > function bar() { $x = 42; }
php > var_dump(bar());
NULL
php > function baz() { return 'hi mom'; }
php > var_dump(baz());
string(6) "hi mom"
无论您如何/在何处定义函数,这都适用,包括作为类方法:
php > class foo { function bar() { } }
php > $foo = new foo();
php > var_dump($foo->bar());
NULL
答案 1 :(得分:2)
没有。 $class
将具有错误值,但如果您希望方法终止并立即返回该值,则仍需要从YourClass::a()
返回它。 return
仅在调用它的函数/方法的范围内。
public static function a(){
$class = getClass();
if (!$class) {
return false; // or return $class;
}
some more code...
}