本文目录一览:
php中面向对象编程是什么意思,到底用在什么地方,用一个项目中的实际例子来举例说明
可以这样理解,
1、类是模具,对象是模具生成的产品,就是印刷术一样,有了一个字一个字的模子,要印出一个字来就方便了,想印就印,你可以印,我也可以印。
2、在PHP中怎么做一个模具出来呢,就用 class申明,它就表示你要造一个模具了,但这个模具是做什么用的,就要在里面添加函数来表达了,函数名就是这个类的方法名,函数完成的功能就是类的方法。当然函数要实现功能代码中肯定要用到变量,这个就是所谓的类的成员以或者说成是类的属性。
3、有了类的属性有了类的方法,这就完成了一个类的定义,也就是模具做好了,接下来要理解的就是,怎样去用这个类了。就好像是要看一本书你不可能到印刷厂去把字的模具拿来拼成一页一页书来看吧,肯定是在纸上印刷出来。这个印刷的过程就是对象生成的过程也叫类的实例化。PHP中用new关键字来生成对象。比如前面定义的类名为 牛,这个牛有一个方法(函数)是:耕地。当然耕地这个函数,要怎样去实现那是另外要的事情了。现在要说的是怎么用牛的耕地方法,首先实例化,在PHP中这样表示:牛1= new 牛。这样 牛这个类 就有了一个具体可以使唤的牛1了 要想用牛1的耕地方法,意思就是“调用类(对象)的方法”,PHP中这样表示,牛1-耕地;如果你想要100头牛,就new100个出来就行,而不用每当要用牛的时候都去写牛的代码和牛耕地的代码了。
4、上面说的是一个理解过程,要实现就要用到具体的PHP的语法了,比如怎样申明变量 ,怎样赋值,怎样用运算符来运算,怎样写循环结构,怎样写选择结构,等等 。
PHP真的能算是面向对象的语言吗?
面向对象三大特性:封装,继承,多态
php可以封装对象,也可以继承,同样可以实现多态
多态是指指出重写和重载,php子类可以重写父类的方法,也可以通过方法的参数数量不同来重载方法,我觉得是面向对象语言
php面向对象有什么用
php程序编写分总分两种方式,分别为面向过程和面向对象,用两者比较你会更容易理解些
以下数据库操作为例:
面向过程:
$conn = mysql_connect('127.0.0.1', 'root', '123456') or die('连接不成功!');
mysql_select_db('test', $conn) or die('数据库不存在!');
$queryid = mysql_query("select * from sort");
while ($rs = mysql_fetch_assoc($queryid)) {
echo $rs['name'], 'br';
}
过程的代码给人感觉比较乱,不易管理,以下实现以上代码一样的功能,但代码清楚多了。
面向对象就是把常用的功能封装为一个类,类由属性和方法组成:
把以上过程代码封装成类,以文件形式保存为db.php
class db {
private $conn; //属性
private $queryid; //属性
//构造函数
public function db($host, $dbuser, $dbpasswd, $dbname) {
$this-conn = mysql_connect($host, $dbuser, $dbpasswd) or die('连接不成功!');
mysql_select_db($dbname, $this-conn) or die('数据库不存在!');
}
//查询方法
public function query($sql) {
$this-queryid = mysql_query($sql, $this-conn);
}
public function fetch_assoc() {
return mysql_fetch_assoc($this-queryid);
}
}
//在a.php文件中实例化,代码使用变得简结和容易理解,代码的重用性
inclode('db.php');
$db = new db('127.0.0.1', 'root', '123456', 'test');
$db-query("select * from sort");
while ($rs = $db-fetch_assoc()) {
echo $rs['name'], 'br';
}