【问题标题】:How to return array from class function如何从类函数返回数组
【发布时间】:2018-08-28 17:13:53
【问题描述】:

我想从函数中返回一个数组,但它什么也没返回。如果我声明任何返回罚款但我需要返回的字符串。

class someclasss {

  function somefunction {

    $arr = array();

    if(condition){
      array_push($arr, array("name"=>"john"));
      return $arr;
    }

  }

}

我也尝试返回一个简单的数组,但也没有用!

谁能帮忙知道如何从函数返回一个数组??

【问题讨论】:

    标签: php function class oop


    【解决方案1】:

    你当前的代码有两个问题:

    1. 它没有返回包含数组的变量。它正在返回 array_push() 函数的结果,这可能不是你想要的。
    2. 只有在inside条件时才调用return。如果条件没有触发,则不会遇到 return 语句。如果条件没有触发,这基本上相当于执行return null;

    你可能想要更多类似的东西:

    function somefunction {
      $arr = array();
      if(condition){
        array_push($arr, array("name"=>"john"));
      }
      return $arr;
    }
    

    可以简写成:

    function somefunction {
      return condition ? ['name' => 'john'] : [];
    }
    

    【讨论】:

    • 如果我在 if 语句中返回一个字符串,它可以工作!比为什么不数组?
    • 返回数组可以正常工作,但$var 不是数组。请参阅array_push() 的文档——它不会返回新数组。
    • 是的!你是对的,但它也没有返回 $arr!
    • 移动return $arr;,使其在条件之外
    • 是的!很简单,不知道为什么不在我身边工作,会检查它,thx
    猜你喜欢
    • 2011-05-14
    • 2022-10-01
    • 2012-06-17
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多