在类之间传递变量

时间:2014-03-28 13:33:54

标签: php class oop

在具有以下条件的类之间传递变量的最佳方法是什么:

  1. 没有继承
  2. 没有静态或抽象的功能
  3. 不同PHP文件中的两个类
  4. 所以

    Class.php

    Class 1{
    public $x 
        function setx(){
           $this-> x = 20
        }
    }
    

    Class2.php

    Class_2{
    
     #get value of $x in this class
    
    }
    

3 个答案:

答案 0 :(得分:0)

在class1中创建一个get方法,并在类2中调用它:

Class.php

Class 1{
    public $x 
    function setx(){
       $this-> x = 20
    }

    function getx() {
        return $this->x;
    }
}

Class 2.php

Class_2{

    function someMethod() {
        Class_1 c = new Class_1();
        c.getx();
    }

}

答案 1 :(得分:0)

包括class2并使用扩展名

class Class2 extends Class1 {
   public function z(){
    print $x;
   }
}

答案 2 :(得分:0)

    如果没有静态方法,
  1. 类就无法通信,实例可以。
  2. getter和setter是OOP的对立面,你是否考虑过一个不那么合成的场景?
  3. 如果类X的实例可以执行有用的工作,而类Y的实例想要驱动它们,则应该这样做。
  4. 注意没有getter或setter,Shelf->stuff在没有Book实例的情况下是可测试的。

    class Shelf
    {
      function stuff($thickness)
      {
        if ($this->spaceLeft < $thickness)
          throw new ShelfOverflow;
        $this->spaceLeft -= $thickness;
      }
    }
    class Book
    {
      function shelve(Shelf $s)
      {
        $s->stuff($this->thickness);
      }
    }