【问题标题】:PHP: Access return value from function of class after require_oncePHP:在require_once之后访问类函数的返回值
【发布时间】:2015-04-01 13:44:00
【问题描述】:
class DB{
  function potatoe(){
  ... a lot of code ...
  return array('x'=>nothing, 'y'=>something, 'z'=>anything);
  }
}

然后在单独的文件中使用require_once:

require_once __dir__."/DB.php";
$object = new DB();
$object->potatoe();

但是对象仍然是空的。我无法访问该类的返回值。变量有值,我用 var_dump 检查过这个。

编辑:

if($object->potatoe()){
    echo "test";
}
else{
    echo "nichts";

返回真...

【问题讨论】:

  • 什么?你有什么问题?
  • 启用错误报告并在potatoe 调用周围放置一个var_dump
  • 不带e的单数称为potato
  • 类没有“返回值”。实例化一个对象“返回”该类的一个实例,但它不是任何东西的返回值。它只是一个引用/指针,指向该类的这个新实例存在于内存中的任何位置。
  • 说真的,我已经尝试了很多事情,以至于我没有在整个通话中检查 var_dump。我一直在那里。我现在唯一要做的就是将这三个数组从对象中提取出来并放入另一个函数中。到目前为止感谢

标签: php function class return-value require


【解决方案1】:

试试这个,我也发表了评论询问这个问题。

require_once __dir__."/DB.php";
$object = new DB();
$temp=$object->potatoe(); 
print_r($temp);

【讨论】:

    【解决方案2】:

    该方法返回一个值,但您没有将该值分配给任何东西。 $object->potatoe(); 调用该方法,但它不会将返回值存储在任何地方供您访问。如果您使用了$foo = $object->potatoe();,那么您应该能够以$foo 的身份访问您的阵列。如果您想直接将其作为属性访问,您会想要 $object->propertyName = $object->potatoe(); 但这对我来说感觉有点傻,如果我知道我需要的数组,我只需将它静态分配给属性即可。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 2014-12-03
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多