PHP面向对象设计如何实现最佳实践?

更新于
2026-09-27 12:35:16
1阅读来源:SEO资源
  • 内容介绍
  • 相关推荐

本文共计872个文字,预计阅读时间需要4分钟。

PHP面向对象设计如何实现最佳实践?

类:定义一类事物的抽象特征。对象:类的实例,具体的事物。成员变量:定义在类内部的变量,用于存储对象的属性。定义在类内部的变量:在类被实例化为对象后,这些变量的值是私有的,不可直接访问,但可以通过成员函数访问。

类:定义一件事物的抽象特点。

对象:类的 实例。

成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。var关键字定义成员变量。

多态:相同的函数或方法可作用于多种类型对象产生不同结果。

封装:现实世界中存在的某个客体的属性和行为绑定在一起,并放置在一个逻辑单元中。

构造函数:创建对象是初始化对象,为对象成员变量赋初始值,与new运算符一起使用在创建对象的语句中。

定义类:

PHP面向对象设计如何实现最佳实践?

<?php class site(){ /* 成员变量 */ var $url; var $title; /* 成员函数 */ function setUrl($par){ $this->url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } } ?>

类的变量使用 var 来声明, 变量也可以初始化值。

函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

变量 $this 代表自身的对象。

创建对象:

$baidu = new site; $taobao = new site;

调用成员方法:

$baidu->setUrl('www.baidu.com'); $baidu->getUrl();

构造方法:

function __construct($baidu){ $this->url = $baidu; }

现在可以这样实例化对象:

$baidu = new site('www.baidu.com'); //调用成员函数 $baidu->getUrl()

方法重写:

// 从父类继承的方法不能满足子类时,可以对方法进行重写覆盖(override) function getUrl() { echo $this->url . PHP_EOL; return $this->url; }

访问控制:

public 公有公有的类成员可以在任何地方被访问。protected 受保护受保护的类成员则可以被其自身以及其子类和父类访问。private 私有私有的类成员则只能被其定义所在的类访问。(继承类也不能访问)

static关键字:

声明方法或类属性为static,可以不实例化而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

Final关键字:

如果父类中的方法被声明final,则子类不能覆盖该方法(重写);如果类被声明final则该类不能被继承。

调用父类的构造方法:

PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。

<?php class base{ function __construct(){ print "base类构造方法".PHP_EOL; } } class sub extends base{ function __construct() { parent::__construct();// 子类不能自动继承父类构造方法 print "子类sub的构造方法".PHP_EOL; } } // 调用base构造方法 $obj1 = new base(); // 调用base、sub构造方法 $obj2 = new sub(); ?>

到此这篇关于php面向对象程序设计的文章就介绍到这了,更多相关php面向对象内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计872个文字,预计阅读时间需要4分钟。

PHP面向对象设计如何实现最佳实践?

类:定义一类事物的抽象特征。对象:类的实例,具体的事物。成员变量:定义在类内部的变量,用于存储对象的属性。定义在类内部的变量:在类被实例化为对象后,这些变量的值是私有的,不可直接访问,但可以通过成员函数访问。

类:定义一件事物的抽象特点。

对象:类的 实例。

成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。var关键字定义成员变量。

多态:相同的函数或方法可作用于多种类型对象产生不同结果。

封装:现实世界中存在的某个客体的属性和行为绑定在一起,并放置在一个逻辑单元中。

构造函数:创建对象是初始化对象,为对象成员变量赋初始值,与new运算符一起使用在创建对象的语句中。

定义类:

PHP面向对象设计如何实现最佳实践?

<?php class site(){ /* 成员变量 */ var $url; var $title; /* 成员函数 */ function setUrl($par){ $this->url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } } ?>

类的变量使用 var 来声明, 变量也可以初始化值。

函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

变量 $this 代表自身的对象。

创建对象:

$baidu = new site; $taobao = new site;

调用成员方法:

$baidu->setUrl('www.baidu.com'); $baidu->getUrl();

构造方法:

function __construct($baidu){ $this->url = $baidu; }

现在可以这样实例化对象:

$baidu = new site('www.baidu.com'); //调用成员函数 $baidu->getUrl()

方法重写:

// 从父类继承的方法不能满足子类时,可以对方法进行重写覆盖(override) function getUrl() { echo $this->url . PHP_EOL; return $this->url; }

访问控制:

public 公有公有的类成员可以在任何地方被访问。protected 受保护受保护的类成员则可以被其自身以及其子类和父类访问。private 私有私有的类成员则只能被其定义所在的类访问。(继承类也不能访问)

static关键字:

声明方法或类属性为static,可以不实例化而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

Final关键字:

如果父类中的方法被声明final,则子类不能覆盖该方法(重写);如果类被声明final则该类不能被继承。

调用父类的构造方法:

PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。

<?php class base{ function __construct(){ print "base类构造方法".PHP_EOL; } } class sub extends base{ function __construct() { parent::__construct();// 子类不能自动继承父类构造方法 print "子类sub的构造方法".PHP_EOL; } } // 调用base构造方法 $obj1 = new base(); // 调用base、sub构造方法 $obj2 = new sub(); ?>

到此这篇关于php面向对象程序设计的文章就介绍到这了,更多相关php面向对象内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!