PHP中常见的关键字和魔术方法


好好学习,天天向上!

final关键字的应用

final可以加在类或类中方法前,但不能使用final标识成员属性。

final关键字的作用如下:

  • 使用final标识的类,不能被继承。
  • 在类中使用final标识的成员方法,在子类中不能被覆盖。

static关键字的使用

使用static关键字可以将类中的成员标识为静态的,既可以用来标识成员属性,也可以用来标识成员方法。类中的静态成员是不需要对象而使用类名来直接访问的,格式如下所示:
在这里插入图片描述
在类中声明的成员方法中,也可以使用关键字"self"来访问其他静态成员。格式如下:
在这里插入图片描述

const关键字

虽然const和static的功能不同,但使用的方法比较相似。在PHP中定义常量是通过调用define()函数来完成的,但要将在类中的成员属性定义为常量,则只能使用const关键字。

克隆对象

在PHP中,可以根据现有的对象克隆出一个完全一样的对象,克隆以后,原本和副本两个对象完全独立,互不干扰。在PHP5中,使用关键字"clone"关键字克隆对象。

类中通用的方法__toString()

“魔术”方法__toString()是快速获取对象的字符串表示的最便捷的方式,它是在直接输出对象引用时自动调用的方法。测试代码如下:

<?php
	//声明一个测试类,在类中声明一个成员属性和一个__toString()方法
	class TestClass{
		private $foo;
		function __construct($foo){
			$this->foo=$foo;
		}
		public function __toString(){
			return $this->foo;
		}
	}

在这里插入图片描述

__call()方法的应用

在PHP中,可以在类中添加一个“魔术”方法__call(),则调用对象中不存在的方法时就会自动调用该方法,并且程序也可以继续向下执行。
__call()方法需要两个参数:
第一个参数是调用不存在的方法时,接收这个方法名称的字符串;
第二个参数是参数列表(以数组的形式传递到第二个参数中)

自动加载类

PHP提供了类的自动加载功能。当你尝试使用一个PHP没有组织到的类时,它会寻找一个__autoload()全局函数(注意,该函数不是在类中声明的函数)。如果存在这个函数,PHP会用一个参数来调用它,参数即类的名称。
所以说,当我们在做项目时,在组织定义类的文件名时,需要按照一定的规则,一定要以类名为中心,也可以加上统一的前缀或后缀形成文件名。
测试代码如下:

<php?
	function __autoload($className){
		//在方法中使用include来包含类所在的文件
		include(strtolower($className).".class.php");
	}
发布了102 篇原创文章 · 获赞 93 · 访问量 9660

猜你喜欢

转载自blog.csdn.net/Deep___Learning/article/details/103791046