Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中是否返回假气泡?_Php_Return - Fatal编程技术网

在PHP中是否返回假气泡?

在PHP中是否返回假气泡?,php,return,Php,Return,我有一个类,其中包含一些php中的方法 一个公共方法调用一个受保护的方法。如果受保护的方法返回false,公共方法是否会返回false而不继续 public static function a() { $class = getClass(); // some more code... } protected static function getClass() { $classList = self::find_by_sql(" SELECT *

我有一个类,其中包含一些php中的方法

一个公共方法调用一个受保护的方法。如果受保护的方法返回false,公共方法是否会返回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];
    }
}

否。
$class
将有一个假值,但如果希望方法终止并立即返回该值,则仍然需要从
YourClass::a()
返回该值<代码>返回仅在调用它的函数/方法的范围内

public static function a(){ 
  $class = getClass();
  if (!$class) {
      return false; // or return $class;
  }
  some more code...
}

否。
$class
将有一个假值,但如果希望方法终止并立即返回该值,则仍然需要从
YourClass::a()
返回该值<代码>返回仅在调用它的函数/方法的范围内

public static function a(){ 
  $class = getClass();
  if (!$class) {
      return false; // or return $class;
  }
  some more code...
}

否。
return
不像异常,并且没有冒泡。如果没有显式的
返回值
,则存在隐式的
返回空值

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

否。
return
不像异常,并且没有冒泡。如果没有显式的
返回值
,则存在隐式的
返回空值

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

所以如果我想让方法a返回false,我需要检查$class是否为false,然后返回false?不,三元运算符不是这样工作的。但是您可以这样做:
如果(!$class)返回false如果您希望它是一行的。谢谢!这真的很有帮助。所以如果我想让方法a返回false,我需要检查$class是否为false,然后返回false?不。三元运算符不是这样工作的。但是您可以这样做:
如果(!$class)返回false如果您希望它是一行的。谢谢!这真的很有帮助。