我只是根据其他语言的经验来询问,这些经验可以消除基于类范围的全局函数调用的方法调用 - 例如:
class Foo {
function bar(){
echo 'bletch';
}
function baz(){
$this->bar();
}
}
所以我想我在问是否还有另一种做法$this->bar()
,或者换句话说,我怎么能忽略$this
,这看起来似乎是多余的?
答案 0 :(得分:4)
不,您无法在PHP中bar()
内baz()
访问$this->
,因为您可以轻松拥有不属于任何类的全局函数bar()
/对象(这与你正在考虑的大多数语言不同),这会导致冲突。
答案 1 :(得分:0)
简而言之,这是不可能的。
因为调用bar
会在类之外调用名为bar
的函数,并给出以下内容:
function bar() {
echo 'foo';
}
class Foo {
function bar(){
echo 'bletch';
}
function baz(){
$this->bar();
}
function foobar() {
bar();
}
}
$instance = new Foo();
$instance->foobar();
这会回复foo
的{{1}},而不是function bar()
的{{1}}