子方法是否无法访问父方法的变量?

时间:2013-08-30 05:01:06

标签: php oop syntax scope

每个人说的不是一个子方法,但它是在我的班级Paginate中的另一个方法中调用的方法。

当我尝试运行时:

public function paginate() {
    // Other stuff here 
    for ($i = $pageMin; (($i <= $pageMax) && ($i <= $this->arrayLength)); $i++) {
    $this->build(); // The important bit! 
    }
    // Other stuff here 
}

public function build() {
    echo $array[$i]['name'];
}

我在$i is undefined方法调用echo的行上被告知build()。为什么是这样?在另一个内部调用的方法是否不从父方法继承变量?从$i的角度来看,build()是否相对全球化?

我该如何解决这个问题?我在$i内调用时,是否必须将build()作为参数传递给paginate()?这看起来并不完全干净。替代?

1 个答案:

答案 0 :(得分:1)

它们的范围不同。

你必须用参数传递它。

$this->build($i); 

-

public function build($i) {
    echo $array[$i]['name'];
}