1,简单的对象创建
复制代码 代码如下:
//类的作用域final:将阻止子类重写这个字段
//方法的作用域abstract: 在父类中声明,在子类中实现
//定义类:
class Employee{
//定义字段
private $name;
protected $title;
public $wage;
//常量
const PI = 3.1415926;
//静态成员变量
private static $visitors = 0;
//定义构造函数
function __construct(){
//使用静态成员变量
self::$visitors++;
echo "constructor";
}
//定义析构函数
function __destruct(){
echo "destruct";
}
//声明方法
public function clockIn(){
//使用字段
echo "Member $this->name";
}
//在访问一个对象并不拥有的属性时(比如私有字段),如果该对象用户__get和__set方法,则会自动调用__get方法或__set方法
function __set($property,$value){
$this->$property = $value;
}
function __get($property){
return $this->$property;
}
}
//类的继承 Manager继承Employee
class Manager extends Employee {
function __construct(){
//调用父类的构造函数或方法
parent::__construct();
parent::clockIn();
echo "Manager constructor";
}
}
//创建对象
$employee = new Employee();
$employee->wage = 10000;
//使用常量
echo Employee::PI;
//调用方法
$employee->clockIn();
$manager = new Employee();
//instanceof判断一个对象是类的实例、类的子类,还是实现了某个特定接口
if($manager instanceof Employee ) echo "Yes";
2,高级OO特性
(1)对象克隆
复制代码 代码如下:
//对象克隆
class ClassA{
private $name;
private $title;
public function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
public function setTitle($title){
$this->title = $title;
}
public function getTitle(){
return $this->title;
}
function __clone(){
echo "我被克隆了","<br>";
}
}
$classA = new ClassA();
$classA->setName("NameA");
$classA->setTitle("TitleA");
$classB = clone $classA;
$classB->setName("NameB");
echo $classA->getName(),"<br>",$classA->getTitle(),"<br>";
echo $classB->getName(),"<br>",$classB->getTitle(),"<br>";
/* output
我被克隆了
NameA
TitleA
NameB
TitleA
*/
(2)接口
复制代码 代码如下:
//接口
interface IPillage{
function method();
}
class ClassC extends ClassA implements IPillage {
function method(){
echo "inteface method";
}
}
$classC = new ClassC();
$classC->method();
//inteface method
(3)抽象类
复制代码 代码如下:
//抽象类,是不能实例化的类,只能作为其它类继承的基类
abstract class BaseClass{
protected $name;
abstract function method();
}
class ChileClass extends BaseClass {
function method(){
echo "method";
}
}
$child = new ChileClass();
$child->method();
//output method
注:
如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建由一些不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。php可以继承多个接口,但不能扩展多个抽象类。
如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。在接口中无法实现行为。
相关推荐:
优化服务网-提升客户体验,打造全方位智慧服务平台,东莞网站建设员招聘信息
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
好用的AI智能工具,让生活与工作更高效!
ChatGPT最新版本更新内容:智能对话体验再升级,更多功能与应用,ai证伪
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
AI一键生成文章免费版:颠覆写作新体验
怎么让AI润色文章,让写作更轻松?
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
用AI写文,开启创作新时代
什么是seo运营,什么是seo营销 ,ai绘画沙地
SEO每日:提高网站流量的秘密武器,助你脱颖而出,seo优化和排名技巧
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
seo网站反链是什么,网站反链怎么做 ,ai插画头像卡通
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
为什么做抖音seo,为什么做抖音推广 ,描边ai虚线
SEO工装裤-打造时尚与实用兼备的工作利器,ai画中国爸爸辅导孩子写作业
ChatGPT故障你从未听过的真相,究竟是什么让它偶尔“失灵”?,ai 图片 矢量
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
乘风SEO-引领企业互联网时代的腾飞之路,南昌b站关键词排名优化贵不贵
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
ChatGPT发生故障,背后隐藏着哪些不为人知的原因与挑战?,硬件ai和软件ai
智能AI写作生成:如何借助人工智能提升创作效率与质量
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
ChatGPT使用问题?如果您正在使用VPN,请尝试将其关闭,ai制作渐变立体
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
Chato1免费么?揭开这款AI聊天机器人的神秘面纱,交个朋友ai写作
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
seo都有什么意思,seo 啥意思 ,ai园林
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
ChatGPT翻译打不开?解决方法!,ai爱股票
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
SEO有意:如何通过优化策略提升网站排名与流量,天津政府智慧网站建设
seo软件是什么职位,seo用的是什么软件 ,ai感知树
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
打造高效创作体验,写文章AI软件重塑内容生产力
seo要寻找什么资源,怎么找seo ,ai插画描边
SEO字:如何通过精准关键词提升网站流量与排名,赣州于都网站推广
ChatGPT的梯子:突破网络壁垒,畅享智能对话的全新体验,ai的音标1001ai的音标
ChatGPT空白对话:释放创意,开启智能对话的新世界,ai重庆南坪
AI做文章:引领智能创作的未来