PHP常用关键字

作者猫斯基 2014-01-22 106 人读过

最新文章

instanceof

instanceof,用于检测当前PHP对象实例是否属于某一个类的类型。

class Person{}
class Student extends Person {}
$p = new Person('xoN', 23, '男');
if ( $p instanceof Person ) {
	echo "$p属于Person类<br />";
} else { echo "$p不属于Person类<br />";}
$s = new Student('dsd', 18, '女', 'Xx大学');
if ( $s instanceof Person ) {
	echo "$s属于Person类<br />";
} else { echo "$s不属于Person类<br />";}
if ( $s instanceof Student ) {
	echo "$s属于Student类<br />";
} else { echo "$s不属于Student类<br />";}
/*
打印结果:
$p属于Person类
$s属于Person类
$s属于Student类
*/

final

只能修饰类和方法,不能修饰成员属性。

修饰类时,这个类不能扩展,不能有子类。

修饰方法时,这个方法不能在子类中重载扩展。

static

使用static修饰的成员属性,存在于内存的初始化静态段;可以被同一个类的对象共用。

第一次用到类时(类名第一次出现),类加载到内存时,就已经将静态的成员加到了内存。

静态成员一定要使用类访问。类::静态成员

static不能修饰类。

self可以在类中的方法中使用,代表自己类的名称。

静态成员一旦被加载,只有脚本结束才释放。

在静态方法中不能访问非静态成员。因为不用创建对象就可以使用静态方法,没有对象的话,非静态成员就没有初始化。

只要能使用静态方法,就使用静态方法,效率高。

/**
 * @url https://maosiji.com
ds
 */
class Person {
	public static $name = 'a1';
	public static $age = '15';
	public static $sex = '女';
	public static $country = '中国';
	public static function say() {
		echo '我的名字是:'.self::$name.',年龄是:'.self::$age.',性别是:'.self::$sex.'。<br />';
		echo "我的祖国是 ".self::$country."<br />";
	}
}
Person::say();
echo Person::$country.'<br />';
Person::$country = 'USA';
echo Person::$country.'<br />';
Person::say();
/*
打印结果:
我的名字是:a1,年龄是:15,性别是:女。
我的祖国是 中国
中国
USA
我的名字是:a1,年龄是:15,性别是:女。
我的祖国是 USA
*/

const

const修饰的成员属性为常量,只能修饰成员属性。

常量建议使用大写,不能使用$

常量一定要在声明时赋值。

常量的访问方式和static静态的访问方式相同,但只能读,不能改。

在类外部使用 类名::常量名

在类内部使用 self::常量名

/**
 * @url https://maosiji.com
ds
 */
class Person {
	const SEX = 'man';
	static function say() {
		echo 'sex ---'.self::SEX;
	}
}
echo Person::SEX;
echo '<br />';
Person::say();
/*
打印结果:
man
sex ---man
*/

本文由 猫斯基 原创发布。

著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://maosiji.com/php/php-19.html