从单独的函数中提取变量

时间:2011-03-30 04:59:16

标签: php scope

如果我有两个公共函数,并且我想从一个内部拉一个变量,那么实现这个的最佳方法是什么?我知道'全球',但这种方法似乎可能会导致我的问题。

想象一下我有这样的事情:

class myCMS {

   public function process_apples() {

   $a = $_POST['$apples'];

   }

   public function display_apples() {

   echo $a;

   }
}

如何使用display_apples()报告来自process_apples()的$ a?我是PHP的新手,所以如果我违反了一些最好的组织我的代码练习,请随时告诉我。

3 个答案:

答案 0 :(得分:3)

如果一个类中有两个方法,并希望在它们之间共享一个变量,那么你应该使用class property - 这是一个类中的变量。


您的课程将如下所示:

class myCMS {
    protected $a;   // declare the property (won't be visible from outside the class)

    public function process_apples() {
        $this->a = $_POST['$apples'];
    }

    public function display_apples() {
        echo $this->a;
    }
}


还有几点说明:

  • 您需要使用$this->property_name来访问媒体资源
  • 没有关系,但你通常不应该在课堂内使用$_POST:它会让你的课程依赖于外部的全局变量 - 当然,由你决定是否是一个问题

答案 1 :(得分:1)

你会:

class myCMS {

   private $a;

   public function process_apples() {

     $this->a = $_POST['$apples'];
     // process

   }

   public function display_apples() {

     echo $this->a;    
   }
}

答案 2 :(得分:1)

由于你正在使用一个类,你可以创建一个私有类变量,如下所示:

class myCMS {
    private $a;

    public function process_apples() {
        $this->a = $_POST['$apples'];
    }

    public function display_apples() {
        echo $this->a;
    }
}