自动加载类 (面向对象)----2017-04-20

一、__tostring()方法(了解)

写在类里;必须有返回值

class Ren

{

public $name;

public function __ tostring()

{

return "该类是人类,name代表姓名";

}

}

$r = new Ren();

echo $r;

二、__clone()方法(了解)

class Ren

{

public $name="张三";

//第二种修改成员变量值的方法

public function __clone()

{

$this->name = "李四";   ------this指复制的对象

}

}

$r = new Ren();

$c = clone $r;    ----克隆一个和$r = new Ren();一样的对象

echo $c->name;

$c->name="李四";  --------第一种修改成员变量值的方法

echo $c->name;

三、加载类   (重要)

(1)建立要加载的文件 文件名为ren.class.php (不含其他代码时,可以只写开头不写结尾)

(2)加载类的方法  7种  一两个时用前六个,多时用最后一个

1、include("./ren.class.php");

2、include "./ren.class.php";

区别:include是将全部内容加载进来,一个出错,当前页面也崩溃,require只是加载相关部分

3、require("./ren.class.php");

4、require "./ren.class.php";

区别:前者(3、4)考虑次数,会出现重复引入的问题;后者(5、6)只请求一次,请求了就不会再请求第二次

5、require_once("./ren.class.php");

6、require_once "./ren.class.php";

$r=new Ren();

7、自动加载类

使用时的要求:

1、所有的类文件要写在同一个目录下

2、类文件的命名规则要一致xx.class.php

3、类的文件名要和类名保持一致(区分大小写)

function __autoload($classname)

{

require_once("./".$classname.".class.php");   //造对象的时候调用

}

$r=new Ren();

时间: 2024-11-08 21:20:18

自动加载类 (面向对象)----2017-04-20的相关文章

PHP面向对象 – 自动加载类

在设计面向对象的程序开发时,通常为每个类的定义都单独建立一个PHP源文件.当你尝试使用一个未定义的类时,php会报一个致命错误.可以用include或require包含一个类所在的源文件,毕竟你知道要用到那个类.如果一个页面需要使用多个类,就不得不在脚本页面开头编写一个长长的包含文件的列表,将本页面需要的类全部包含进来.这样处理不仅繁琐,而且容易出错.  PHP提供了类的自动加载功能,这可以节省编程的时间.当你尝试使用一个PHP没有组织到的类时,它会寻找一个__autoload()的全局函数(不

【PHP面向对象(OOP)编程入门教程】23.自动加载类 __autoload()函数

很多开发者写面向对象的应用程序时,对每个类的定义建立一个 PHP 源文件.一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表. 在软件开发的系统中,不可能把所有的类都写在一个PHP文件中,当在一个PHP文件中需要调用另一个文件中声明的类时,就需要通过include把 这个文件引入.不过有的时候,在文件众多的项目中,要一一将所需类的文件都include进来,是一个很让人头疼的事,所以我们能不能在用到什么类的时 候,再把这个类所在的php文件导入呢?这就是我们这里我们要

0607pm克隆&引用类&加载类&面向对象串讲&函数重载

克隆class Ren{ public $name; public $sex; function __construct($n,$s) { $this->name=$n; $this->sex=$s; } function __clone()//改变克隆的对象内容 { $this->name="李思思";//this代表复本对象 $that->name="李思思";//that代表原本的,后来废弃了 }}$r=new Ren("张丹

php 自动加载函数、自动加载方法、自动加载类

在PHP开发过程中,如果希望从 外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来.这个在小规模开发的时候,没什么大问 题.但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且 require_once的代价很大. 在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历 目录,自动加载所有符合约定规则的文件的类或函数. 当然,PHP

框架开发(五)----自动加载类

一 . 为什么自动加载 自动加载字面的意思就不解释了.我这里自动加载类解析下 是自动加载类文件的意思.__autoload方法完全可行,但是不要问为什么,还是用spl_autoload_register.不只是灵活,而且就是灵活,还是灵活,体现在__autoload只能这么命名,spl_auto_register() 能调用不同的函数. 二  自动加载函数原理   通常情况下,一个类的定义都是一个文件,当类与类需要相互引用的时候,就需要include(require)相应的类文件,带来的问题就是

spl_autoload_register自动加载类回调函数实现

随手写的,后台发现用不上,放上来以后可能用的着 1 /** 2 * SPL自动加载类 3 */ 4 class AutoLoad 5 { 6 7 /** 8 * 类文件所在目录 9 * 10 * @var string 11 */ 12 protected $dir = ""; 13 14 /** 15 * 类名与目录名映射数组 16 * 17 * @var array 18 */ 19 protected $map = array(); 20 21 /** 22 * 初始化自动加载类

final关键字, 自动加载类

final关键字 如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 属性不能被定义为 final,只有类和方法才能被定义为 final 自动加载类 很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件.一个很大的烦恼是不得不在每个脚本开头写一个长长的包含文件列表(每个类一个文件). 在 PHP 5 中,不再需要这样了.可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用.通过调用此函数,脚

PHP命名空间与自动加载类详解

本文实例讲述了PHP命名空间与自动加载类.分享给大家供大家参考,具体如下: 今天我要给大家介绍的是PHP的命名空间 和 自动加载类 我先简单的分开演示 在放在一起 大家请看:什么是自动加载类? 想必大家都应该知道__autoload 这个魔术方法 $db = new DB();function __autoload($className){echo $className;exit();//在这个里面引用类} 在运用这个类只能加载一次 ,在很多时候我们要引入的不止一个类这个时候怎么办呢! 牛逼的p

PHP 自动加载类

类的自动加载 (Autoloading Classes) 在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件. 这会带来一个烦恼:每个脚本的开头,都需要包含(include)一个长长的列表(每个类都有个文件). 在 PHP 5 中,已经不再需要这样了. spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载.通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机