【问题标题】:class attribute's value is emptied类属性的值被清空
【发布时间】:2021-10-07 17:24:49
【问题描述】:

我正在尝试在我的测试类中设置一个值,该值将在该类的函数中使用。 所以在我的情况下,我在函数 a 中设置 $listId,当我尝试在函数 b 中使用它时,它的值被重置

下面是代码示例:

class testing extends TestCase {

  private $listId;

  public function a(){
    $this->listId = "some value";
    
    print($this->listId); //some value
  }

  public function b(){
    
    print($this->listId); // <nothing is printed here>
    print(gettype($this->listId)); //null

  }

任何人都可以判断我是否做错了什么。 这适用于任何 OO 语言,所以这是 php 的事情。是否有任何替代方法可以将我在一个函数中设置的变量用于类中的其他函数。 我避免返回值并将其作为参数从 a 传递到 b(这真的会弄乱我的代码结构,因为那里有很多函数并且它们已经相互依赖)

我正在使用终端命令运行课程: phpunit path/to/class/testing 所以我没有实例化类并从对象调用函数

【问题讨论】:

  • @NicklasKevinFrank 这里是代码。我想在函数 a 中设置 $listId 后在函数 b 中打印它的值
  • 显示调用 a 和 b 函数的位置
  • 我从终端运行它,它是一些 api 调用的测试类

标签: php laravel class


【解决方案1】:

您在构造函数中为您的属性分配了一个值,现在您可以将该值分配给另一个方法,但是您需要创建一个类的新实例以让该方法实际分配该值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多