你为啥要把问题割裂了看呢? -> 用于表示对象的成员 $this->a 表示是 $this 这个对象的成员 a 有什么不对呢?
thanks all~~~ 只是一下难以习惯,习惯c++之后,有点不习惯~~·
其实这个理解起来也很容易,PHP本向不是面向对象语言,但是,它却支持面向对象 这样,就出现了调用普通变量和类变量的问题,这两个肯定要做区别,不然就不知道调用的是哪个了 例: var $a = 0; class A{ var $a = 1; function test(){ global $a;//需要声明一下才能直接调用类外面的变量$a echo "$a=".$a;//这里的$a值为0 echo "<br>$a=".$this->a;//这里的$a值就是1
类里面调用类里的声明的变量就使用$this->a 而不是$a
如果这么写 $this->$a ,满屏幕的$ 那么对有些人来说就烦死了(包括我)
没有实例化的类,可以直接调用的是静态方法,无论类是否实例化,都只存在一份。调用时
CLASSNAME::METHOD(PARAMS);对于需要实例化的,即需要创建对象的类,大体都是这个过程
$instance = new CLASSNAME(PARAMS);
$instance->property = Something; // 属性
$instance->method(params); // 方法其它的还有在类内部的一些特性使用
比如
self::method
$this->xxx
这些都可以类比,
只是需要注意一下代码书写格式。随便写了点,不对的,请高手指点...
-> 用于表示对象的成员
$this->a 表示是 $this 这个对象的成员 a
有什么不对呢?
只是一下难以习惯,习惯c++之后,有点不习惯~~·
这样,就出现了调用普通变量和类变量的问题,这两个肯定要做区别,不然就不知道调用的是哪个了
例:
var $a = 0;
class A{
var $a = 1;
function test(){
global $a;//需要声明一下才能直接调用类外面的变量$a
echo "$a=".$a;//这里的$a值为0
echo "<br>$a=".$this->a;//这里的$a值就是1
}
}希望这样可以帮你理解这两个的区别。
http://download.csdn.net/detail/dmtnewtons/4122897