学习php中self与$this的区别。
先来看下parent与self的例子:
<?php /* * parent与self的区别 * by www.jb200.com */ class A{ function __construct(){ echo "基类A的构造方法<br />"; } } class B extends A{ function __construct(){ parent::__construct(); echo "子类B的构造方法<br />"; self::myFun(); } function myfun(){ echo "一个普通方法myFun()<br />"; } } $obj=new A(); $obj=new B(); ?>
说明:
self与$this的功能极其相似,但二者又不相同。
注意:
$this不能引用静态成员和常量。
self更像类本身,而$this更像是实例本身。
变量$PHP_SELF是php的内置变量,是PHP中一个很方便的指针,其变量值就是当前页面的URL地址。
【语法】$php_self?变量1=值&变量2=值&变量3=值
使用$PHP_SELF变量而不使用页面的实际地址,是因为通过使用$PHP_SELF变量,可以方便对编写的页面代码进行修改和移动,而不必担心在每次改动之后重新输入新的页面地址。
另外,在使用$PHP_SELF变量时,可以采用如下方式:
global $PHP_SELF;
$PHP_SELF变量为全局变量。
注意:
PHP中任何的函数变量都是局部变量。
这就意味着任何函数变量的作用 域都只局限于包括该变量的函数本身。
即使函数外存在同名变量,变量的值也不相同。
因此,如果没有在代码中以显式方式声明函数变量$PHP_SELF为全局变量具有全局唯一值的话,用户就会发现函数中的变量$PHP_SELF的值将会为空,而非预先所期望的当前页面的URL地址。