PHP常用关键字

猫斯基  — PHP


instanceof

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

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
*/

阅读量:0 2021-01-23 14:29

返回顶部