从OOP的视角看,不应区分语言。无论是C++、无论是Java、无论是.net还有更多面向对象的语言,只要你了解了OO的真谛,便可以跨越语言,让你的思想轻松的跳跃。便没有对于Java、.net、PHP 之间谁强谁弱的争执了。
希望这个介绍PHP5面向对象编程(OOP)的资料能让初学者受益,能让更多的PHPer开始转向OO的编程过程。
相对PHP4,PHP5在面向对象方面改变了很多。我们将只介绍PHP5环境下的面向对象。而我们必须改变自己来跟随PHP5的发展。如果代码结果在你的环境下执行不一致,请确认你的环境为PHP5。
我们假设读者没有任何面向对象的知识,即使你是第一次听说OOP,也可以读懂这文章。但我希望你必须对PHP有一些了解。
在后面我们将使用一些例子,来逐渐分析PHP5的OO基础。
面向对象只解决了两个问题,代码的可扩展性 、代码的可维护性。
不得不说句,php越来越像Java了。
Everything is Object:万事万物皆对象。
面向对象的编程(OOP)思想力图使对计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能的一致。面向对象语言与我们的生活是想通的,面向对象语言学习起来其实很简单。在应用中更符合我们的生活逻辑。
类(Class)是用来描述一个对象(Object):
类描述了每个对象应包括的数据,类描述了每个对象的行为特征。
Class/Object:类(class)和对象(object)是面向对象方法的核心概念。
类是对一类事物描述,是抽象的、概念上的定义;
对象是实际存在的该类事物的每个个体,因而也称实例(instance)。在计算机中,可以理解为,在内存中创建了实实在在存在的一个内存区域存储着这个对象。
创建对象的过程称为创建对象,也称为实例化。
PHP5中的类和对象
我们先建立一个基础的类。
PHP中使用关键字 class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。
view sourceprint?
1
2 class Person
3 {
4
5 }
6 $p = new Person();
7 echo $p;
8 ?>
这样,我们就拥有了第一个PHP类。
我们继续来使用这个类,使用 new 这个关键字创建对象,用echo打印$p
我们定义了一个变量 $p ,使用 new 这个关键字创建了一个Person的对象。
打印变量$p,我们看到输出Object id #1 提示这是一个对象。
$p = new Person();也可以写成 $p = new Person;,但不建议使用后面的这种方式。
PHP5 中的属性
属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)
在PHP5中,属性指在class 中声明的变量。在声明变量时,必须使用 public private protected 之一进行修饰,定义变量的访问权限。
•Public(公开): 可以自由的在类的内部外部读取、修改。
•Private(私有): 只能在这个当前类的内部读取、修改。
•Protected(受保护):能够在这个类和类的子类中读取和修改。
属性的使用:通过引用变量的 -> 符号调用变量指向对象的属性。
在方法内部通过 $this-> 符号调用同一对象的属性。
view sourceprint?
01
02 class Person{
03 public $name = "Gonn"; //定义public属性 $name.
04 public $age = 20; // 定义 public 属性 $age;
05 }
06 $p = new Person(); // 创建对象
07 echo $p."
"; // 输出对象
08 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;
09 echo "
";
10 echo '他的年龄是 '$p->age; //输出age属性.
11 ?>
程序输出结果为:
view sourceprint?
1 他的名字是 Gonn
2 他的年龄是 24
Person类有两个属性,$name 和 $age , 在实例化后,使用$p->name 和 $p->age 打印出属性的内容。
当然,你可以在属性定义时不设置初始值,那样的话,就打印不出任何结果了。
改变对象的属性,注意 8行和9行代码,还有输出结果的变化。我们看到输出的属性值被改变了。
view sourceprint?
01
02 // 1-4.php
03 class Person{
04 public $name = "NoName"; //定义public属性 $name.
05 public $age = 20; // 定义 public 属性 $age;
06 }
07 $p = new Person(); // 创建对象
08 $p->name = 'Tom'; //变更姓名为 Tom
09 $p->age = 25 ; // 变更年龄为 25 岁.
10 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;
11 echo "
";
12 echo '他的年龄是 '.$p->age; //输出age属性.
13 ?>
创建一个Person的对象,改变这个对象的属性。为它命名,查看它的名字。你就是机器里面这个Person对象的上帝,按照你定义的规则,这个实实在在内存中的Person对象被创建了,而且它有了可以改变的属性。
现在,我们就是计算机世界的上帝,准备好创造世界吧。
Private 修饰的属性,在当前对象以外不能访问。设置私有属性是为了进行数据的隐藏。
隐藏:指对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问。
view sourceprint?
1
2 // 1-3.php
3 class Person{
4 private $name = "Gonn"; //定义public属性 $name.
5 public $age = 20; // 定义 public 属性 $age;
6 }
7 $p = new Person(); // 创建对象
8 echo "他的名字是 ".$p->name; // 输出对象$p的属性 $name;
9 ?>
运行此程序将会输出:
view sourceprint?
1 Fatal error: Cannot access private property Person::$name in E:\PHPProjects\test.php on line 9
私有属性不能被外部访,这样做的好处后面会介绍到。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Chinese version
Chinese version, very easy to use

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
