568765867
面向工具编程(Object Oriented Programming, OOP, 面向工具程序设计)是一种打算机编程架构,OOP的一条基本原则是打算机程序是由单个能够起到子程序浸染的单元或工具组合而成。为了实现整体运算,每个工具都能够吸收信息、处理数据和向其它工具发送信息。面向工具一贯是软件开拓领域内比较热门的话 题,为编程职员洞开了一扇大门,使其编程的代码 更简洁、更易于掩护,并且具有更强的可重用性。有人说PHP不是一个真正的面向工具的措辞,这是事实。PHP 是一个稠浊型措辞,你可以利用OOP,也可以利用传统的过程化编程。然而,对付大型项目,你可能须要在PHP 中利用纯的OOP去声明类,而且在你的项目里只用工具和类。
568765867

首先我们来理解一些面向工具编程的根本知识:
1、面向过程:专注于办理一个问题的过程。面向过程的最大特点,是由一个个的函数去办理处理这个问题的一系列过程;
2、面向工具:专注于由哪个工具来处理一个问题。面向工具的最大特点,是由一个个具有属性和方法的功能的类,从类中拿工具,进而处理问题;1、面向过程:专注于办理一个问题的过程。面向过程的最大特点,是由一个个的函数去办理处理这个问题的一系列过程;
面向工具:
1、什么是类?
具有相同属性(特色)和方法(行为)的一系列个体的凑集。类是一个抽象的观点。
2、什么是工具?
从类中拿到的具有详细属性的个体,称为工具。工具是一个详细的个体。
3、类和工具的关系?
类是工具的抽象化,工具是类的详细化。
类仅仅表明这类工具有哪些属性。但是不能有详细的值,以是类是抽象的。
而工具,是将类所有属性赋值后,产生详细的个体,以是工具是详细的。
类的声明与实例化
1、如何声明一个类?
class 类名{
访问润色符 $属性;
[访问润色符] function 方法(){};
}
2、声明一个类的把稳事变?
①类名只能有字母数字下划线组成,开头不能是数字,必须符合大驼峰法则;
②类名必须利用class润色,类名后面一定不能有();
③属性必须带访问润色符;方法可以不带访问润色符;
3、实例化工具及工具属性方法的调用:
$工具名=new 类名();//()可带可不带;
类外部调用属性和方法:
$工具名->属性名;//利用->调用属性时,属性名不能带$符号!!
类内部调用属性和方法:
$this->属性名;
声明类的代码示例:
class Person{ var $name; function Person($name){
$this->name=$name;
}
}
类中常见的润色符
常见的访问润色符有:public、protected、private、var等。
用法如下:
class Person{
public $name;
public function Person($name){
$this->name=$name;
} }
布局函数
1、什么是布局函数?
布局函数是类中的一个分外函数,当我们利用new关键字实例化工具时,相称于调用了类的布局函数;
2、布局函数有什么浸染?
实例化工具时,自动调用,用于给工具的属性赋初值;
3、什么是魔术方法?
PHP中给我们供应了一系列__开头的函数,这些函数无需手动调用,会在得当的机遇自动调用,这类函数称为魔术函数(方法);
例如:
function __construct(){}// 在类new一个工具时自动调用;function __destruct(){}// 在工具被销毁时时自动调用;
因此,为避免重复,我们哀求,除了魔术方法之外,自定义函数与方法不能__开头;
末了,一样平常对付功能比较繁芜的类,我们会单独的写到一个类文件中。
类文件的命名,统一小写,利用\"大众类名.class.php\公众的办法命名。
在其他文件中利用这个类时,利用include导入这个.class.php文件。
代码如下:
<?php header (\"大众Content-Type:text/html; charset=utf-8\公众);class Person{ var $name; /function Person($name){
$this->name=$name;
}/
//魔术方法(此为官方推举用法)
function __construct($name){ $this->name=$name;
} public function say(){ echo \"大众我叫\"大众.$this->name.\公众!
</br>\"大众;
} function __destruct(){ echo \"大众Ah!
张三 is die!
\"大众;
}
}include \"大众person.class.php\"大众;$zhangsan=new Person(\"大众zhangsan\"大众);$zhangsan->say();
4、布局函数把稳事变?
①第一种写法,布局函数名,必须与类同名!
!
!
②如果一个类没有手写布局函数,则系统默认会有一个空参布局,因此可以利用new Person();
如果我们写进了带参数的布局函数,则将不再有空参布局,也便是不能直策应用new Person();
Person后面的()中的参数列表,必须符合布局函数的哀求!
!
(即为形参实参问题);
③如果两种布局函数同时存在,将利用魔术方法__construct。
5、析构函数:__destruct():
①析构函数在工具被销毁开释之前自动调用;
②析构函数不能带有任何参数;
③析构函数常用于工具利用完往后,开释资源,关闭资源等;
6、
布局函数的写法?①布局函数名必须与类同名:
[public]function Person(){
$this->name=$name
}
②利用魔术方法
欢迎关注
568765867