1.面向对象思想:OOA(Object Oriented Analysis):面向对象分析OOD(Object Oriented Design):面向对象设计OOP(Object Oriented Programming):面向对象编程
2.面向过程和面向对象的对比3.类和对象1》对象:一切事物皆对象,对象是系统中用来描述客观事物的一个实体,是构成系统的最基本的组成单位我--对象
特征:姓名、年龄、性别...(属性)
行为:吃饭、睡觉、打豆豆...(方法)
电脑--对象
特征:名称、品牌、颜色、内存、硬盘...
行为:打游戏、看视频、敲代码...
电话--对象
每一类对象都拥有相同的属性和行为
2》类:是一组相同属性和行为的对象的集合类是把具有相似特性的对象归纳到一个类中,类就是一组相同属性和行为的对象的集合
3》类和对象的关系a.类是相似对象的描述
b.先有类,再有对象
c.类是对象的抽象
d.对象是类的实例
4.类的声明1》创建类通过class关键字 类名
123class Person{ //成员属性和方法 }
2》成员属 ...
对象方法应用、属性赋值123456789101112131415161718192021222324252627282930313233343536373839404142<?phpheader('content-type:text/html;charset=utf-8');class Person{ public $username='king'; public $age=12; public $email='382771946@qq.com'; public $sex='男'; //成员方法 public function eat(){ echo 'eat...<br/>'; } public function sleep(){ echo 'sleep...<br/>'; } public function play(){ echo 'play...<b ...
构造函数__construct() 析构函数__destruct()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?phpclass Person{ public $username='king'; public $age=12; public $email='382771946@qq.com'; public $sex='男'; //构造函数,当创建对象的时候首先会调用构造函数,适合初始化数据操作 public function __construct($username,$age,$email,$sex){ echo '当新建对象的时候我首先会被调用<br/>'; $this->username=$username; $this->age=$age; $this->sex=$sex; $th ...
访问修饰public:公有的 全局都能访问
protected:受保护的 只能自或父类、子类访问
private:私有的 只能自己内部访问 外部不能访问
魔术方法:(必须设置成pulbic ,而且参数不能通过引用来传递)
__construct()/__destruct():
__set()/__get()/__isset()/__unset():
__set():在类外部对私有的或者受保护的或者未定义的成员进行赋值的时候会自动调用
__get():在类外部对私有的或者受保护的或者未定义的成员进行读取的时候回自动调用
1234567891011121314151617181920212223242526272829303132333435<?phpheader('content-type:text/html;charset=utf-8');/*封装性:1.访问修饰符varpublic:公有的 全局都能访问protected:受保护的 只能自或父类、子类访问private:私有的 只能自己内部访问 外部不能访问*/class Person{ pub ...
抽象类 abstract通过abstract关键字定义抽象类,只要类中有一个抽象类方法,该类就必须定义为抽象类
抽象类不能直接被实例化,只相当于定义了调用的方式,并没有具体的实现
子类的继承的时候必须实现所有的抽象方法
子类在实现抽象方法的时候,可见性可以和父类相同或者宽松
123456789101112131415161718192021222324252627282930313233343536373839<?phpheader('content-type:text/html;charset=utf-8');/*通过abstract关键字定义抽象类,当类中至少有一个方法为抽象方法的时候,这个类就必须定义成抽象类抽象类不能直接被实例化,只相当于定义了调用的方式,并没有具体的实现子类的继承的时候必须实现所有的抽象方法子类在实现抽象方法的时候,可见性可以和父类相同或者宽松*/abstract class Pet{ public $name; abstract public function eat(); abstract public functi ...
interface 接口使用接口(interface),可以指定继承类必须实现那些方法,方法必须都是共有,且不需要定义这些方法的具体内容
123456789101112131415//声明接口interface iTest{ public function test(); //定义方法无需实现 public function sayHi($username);}//实现接口class Test1 implements iTest{ //实现方法 public function test(){ echo 'this is a test<br/>'; } public function sayHi($username){ echo 'Say Hi to '.$username.'<br/>'; }}
实现多个接口123456789101112131415161718192021interface iA{ ...
多态多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为
php不支持重载实现多态,但是php可以变相的实现多态效果。
12345678910111213141516171819202122//接口实现多态interface USB{ public function run();}class Mouse implements USB{ public function run(){ echo '鼠标可以使用...<br/>'; }}class Micro implements USB{ public function run(){ echo '麦克风可以使用...<br/>'; }}class Computer{ public function useUSB($usbObj){ $usbObj->run(); }}$computer1=new Comp ...
php
未读魔术方法常见魔术方法:__construct():__destruct():__set():__get():__toString():输出对象的时候会被自动调用,返回字符串__invoke():当以调用函数的方式调用对象的时候,会自动触发这个方法__call():当对象调用一个不可或者不存在访问的方法的时候,自动调用__callStatic():用静态的方式调用一个不可访问的或者不存在的方法,会自动调用__clone():克隆对象的时候自动调用__wakeup():反序列化对象的时候会自动调用__sleep():序列化对象的时候会自动调用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748class Test{ public $username='king'; protected $money=123456.89; private $age=12; public $test1='this is a test1'; ...
php 前++和后++区别 趣味题
前++ 先自增在返回
1234567$y = 0;$y = ++$y;var_dump($y); //1$y = 0;$i=$y+1;$y=$i;var_dump($y); //1
后++ 先返回再自增
1234567$y = 0;$y = $y++;var_dump($y); //0$i = 0;$y=$i;$i=$i+1;var_dump($y); //0
趣味题
123456789$count = 5;function get_count() { static $count = 0; $res = $count++; return $res;}++$count;get_count();echo get_count(); // 1 //原因 先返回后自增
自动类型转换判断
12345678$arr = array(0=>1,"aa"=>2, 3, 4);foreach($arr as $key=>$val){ print($key == &quo ...
thinkphp源码浅析-3.视图层解析流程1、建立控制器方法
路径 thinkphp_5.0.7_core/application/index/controller/test.php
代码 建立一个测试方法1234567public function test($name = ""){ $this->assign('name',$name); $res = view('test'); return $res; //$this->display();}
2、建立视图模板文件
路径 thinkphp_5.0.7_core/application/index/view/test/test.html
代码123456789101112<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title& ...