很多站长朋友们都不太清楚php进阶面向对象,今天小编就来给大家整理php进阶面向对象,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 大家是如何理解PHP编程中的“面向对象”呢? 2、 这样算是面向对象吗? - PHP进阶讨论 3、 php面向对象怎么理解? 4、 PHP的面向对象究竟是什么概念?山东 5、 php面向对象全攻略 (三)特殊的引用“$this”的使用 6、 php进阶疑惑 大家是如何理解PHP编程中的“面向对象”呢?你的理解很形象了, PHP的面向对象功能很弱的, 并不是完全的面向对象的。 你可以理解PHP中的类是带属性和方法的结构。 类定义只是定义,类实例才是真正的实现。
这样算是面向对象吗? - PHP进阶讨论原帖由
于
2008-1-26
10:05
发表
[i]5#的回答是正确的,但是也有一个问题,如果对象之间牵扯的关系越多,修改起来就越麻烦,所以,复用不一定是越多越好!有的时候,无耦合就有很大的作用!
不对呀,
你这个问题应该是耦合太大了,
依赖关系太多,
这一般是因为结构和接口没有设计好.
不知道我有没有理解错误,
LS几位说的是无耦合是指重复代码吧,
这种是\"内容耦合\",
这是最大的耦合,
这部分重复的代码如果有问题,
或者有变化,
就不好改了,
要把每一处重复的都找出来,
有可能会遗漏.
其实重不重复不要看代码是不是一样,
而要看这部分功能是不是一样,
功能不一样,
代码类似的,
最好不要提取.
注意:
高内聚,
低遇合,
不是只是面向对象中的东西,
也是面向过程中的东西,
只是实现的方式不一样
php面向对象怎么理解?OOP 思想 MVC结构 你了解 M V C 分别代表什么意思就行了,最简单理解就是view页面需要显示什么内容 交给controll 处理, controll 需要什么数据 MODEL 进行数据库处理提供 然后全部反馈给 controll ,完成处理后 把内容全部转送给 view 页面显示
再简单点就是 view 用来显示 controll 用来控制处理 model 进行数据库分析处理
OOP思想其实 简单的说 把同一类型的全部看作一个容器,然后集中处理,通过接口处理数据后反馈给页面
PHP的面向对象究竟是什么概念?山东这样说吧,
在我们初步学习的面向过程程序设计方法,比如C语言中:
程序=算法+数据结构;
但是面向对象程序设计方法,如C++,和后来的PHP等语言:
程序=(算法+数据结构);
就是说算法与数据结构组成一个整体,而这个整体就是类,把类详细化了就是一个一个具体的对象。
比如定义一个类,再用类声明一个对象:
class Student()
{....functions()
protected:
int a;
char b;
}
Student xiaobai;
Student就是一个类,xiaobai就是一个对象。
像楼主说的那样,对象除了封装方法(我们也可以称之为算法)之外,还可以有一些数据成员,比如上面的a,b,所以类封装不只封装了算法,还有这些算法之下的数据!
从某方面来说,面向对象是函数的升级,因为这类也是可以在主函数外定义的,这也可以将其看作是一种特殊的函数(个人看法啊),我们可以调用这“函数”中的数据和方法。所以楼主说的在广义上也是成立的!
另外,建议楼主先阅读下C++有关课程的关于面向对象的论述,可能会对你有所帮助!
▲
php面向对象全攻略 (三)特殊的引用“$this”的使用7.特殊的引用“$this”的使用
现在我们知道了如何访问对象中的成员,是通过“对象->成员”的方式访问的,这是在对
象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对
象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所
有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP
里面给我提供了
一个本对象的引用$this,每个对象里面都有一个对象的引用$this
来代表这个对象,完成对象
内部成员的调用,this
的本意就是“这个”的意思,上面的实例里面,我们实例化三个实例
对象$P1、$P2、$P3,这三个对象里面各自存在一个$this
分别代表对象$p1、$p2、$p3。
通过上图我们可以看到,$this
就是对象内部代表这个对象的引用,在对象内部和调用本
对象的成员和对象外部调用对象的成员所使用的方式是一样的。
$this->属性$this->name;
$this->age;
$this->sex;
$this->方法$this->say();
$this->run();
修改一下上面的实例,让每个人都说出自己的名字,性别和年龄:
代码片段
复制代码
代码如下:
<?php
class
Person{
//下面是人的成员属性
var
$name;
//人的名字
var
$sex;
//人的性别
var
$age;
//人的年龄
//下面是人的成员方法
function
say(){//这个人可以说话的方法
echo
"我的名字叫:".$this->name."
性别:".$this->sex."
我的年龄是:".$this->age."<br>";
}
function
run(){
//这个人可以走路的方法
echo
"这个人在走路";
}
}
$p1=new
Person();
//创建实例对象$p1
$p2=new
Person();
//创建实例对象$p2
$p3=new
Person();
//创建实例对象$p3
//下面三行是给$p1对象属性赋值
$p1->name="张三";
$p1->sex="男";
$p1->age=20;
//下面访问$p1对象中的说话方法
$p1->say();
//下面三行是给$p2对象属性赋值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面访问$p2对象中的说话方法
$p2->say();
//下面三行是给$p3对象属性赋值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面访问$p3对象中的说话方法
$p3->say();
?>
输出结果
我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
分析一下这个方法:
代码片段
function
say(){
//这个人可以说话的方法
echo
"我的名字叫:".$this->name."
性别:".$this->sex."
我的年龄是:".$this->age."<br>";
}
在$p1、$p2
和$p3
这三个对象中都有say()这个方法,$this
分别代表这三个对象,调用相应的属性,打印出属性的值,这就是在对象内部访问对象属性的方式,如果相在say()这个方
法里调用run()这个方法也是可以的,在say()这个方法中使用$this->run()的方式来完成调用。
php进阶疑惑哥们,你得相信这个事实。
因为招人的很多公司都是之前拿开源项目做的,你想想从新开发的成本大,还是直接拿开源的项目做成本大?无可厚非的是前者。
公司考虑的是低成本,高效率,所以这些开源的CMS就有很大的市场。
你若不写这个经验,可能找到工作的几率就会打折扣。
听你所言,你可以去一些刚刚起步的互联网公司,或者去一些外包公司吧。
关于php进阶面向对象的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php进阶面向对象 php语言之面向对象编程 educoder的详细内容...