本文目录一览:
- 1、php面向对象的概念理解.???
- 2、如何更好的学习PHP的面向对象
- 3、关于php面向对象的问题,求对框架原理了解的大神。
- 4、大家是如何理解PHP编程中的“面向对象”呢?
- 5、php面向对象重要吗
php面向对象的概念理解.???
我觉得没必要去深究他的意思。
按我的理解,面向对象编程,主要是将我们实际生活中的对象经过抽象,将它定义成为一个类,通过类的属性和方法来模拟生活中的这个对象。这样使得程序更容易结构化、抽象起来更方便。
面向对象技术最初是从面向对象的程序设计开始的,
面向对象编程并不困难
它的出现以60年代simula语言为标志。80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以microsoft
visual系列oop软件的流行的背景。
传统的结构化分析与设计开发方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地其业务需求。
传统的软件结构和设计方法难以适应软件生产自动化的要求,因为它以过程为中心进行功能组合,软件的扩充和复用能力很差。
对象是对现实世界实体的模拟,因面能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。
区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。
对象(object)是一个现实实体的抽象,由现实实体的过程或信息牲来定义。一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象操作有时称为方法。对象是个动态的概念,其中的属性反映了对象当前的状态。
类(class)用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
由上分析不难看出,尽管oop技术更看中用户的对象模型,但其目的都是以编程为目的的,而不是以用户的信息为中心的,总想把用户的信息纳入到某个用户不感兴趣的“程序对象”中。
如何更好的学习PHP的面向对象
我觉得首先“是面向对象”的知识要先有一定的了解,比如基本的封装,继承,多态;其次是对php的那套魔术字,魔术方法要有一定的了解。在学习玩这些之后,可以试着实现一些设计模式的实例。最后有能力的话可以去尝试看看php的源代码。
关于php面向对象的问题,求对框架原理了解的大神。
自己设计框架学习意义远大于实用意义,设计的过程中可能会浪费你不少时间,而且你可能以后永远不会(99%)用到自己设计的框架,但是对你深入了解PHP还是很有帮助的。
(我自己也有在设计一个框架,如有兴趣,可以发给你一起研究)
大部分PHP MVC框架中心思想都是一样的:
首先要单文件入口(index.php),就是所有的访问都通过一个文件来控制,这样就能控制流程了。要实现这个功能就需要apache或者nginx的设置来配合了。以apache为例,最经典的.htacess:
IfModule mod_rewrite.c
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L]
/IfModule
此文件的作用就是如果如果访问的文件或者文件夹存在的话就直接调用文件(用来处理访问/public/css, /public/js之类的请求),不然的话就将请求转发给index.php。此时index.php可以调用$_GET['_url'] 来获得请求。
#一般框架遵循的规则是:[地址]/[控制器名字]/[方法名字]/[参数/参数]
#请求: localhost/test/helloworld/china/shanghai
#在index.php里就可以访问$_GET['_url']来获得字符串:/test/helloworld/china/shanghai
然后将字符串explode()成array,根据默认规则获得以下信息(如果愿意可以自己写一个路由而不用默认方法解析路径)
控制器:test
方法:helloworld
参数:china, shanghai
先在test.php中:
class test
{
public function helloworld($country, $city)
{
echo 'Hello, I am from', $country, $city;
}
}
然后在index.php中:
#这里可以自己定义一个__autoload方法来让PHP自行require_once() class文件,就不用自己一个一个include()了。
#初始化一个控制器实例:
$test = new test();
#调用控制器中的方法,并递交参数
#请查阅PHP函数call_user_func_array()的使用方法
call_user_func_array( array($test, 'helloworld'), array('china','shanghai') );
这样就完成了一个简单的MVC框架,剩下的就是继续完善他,你可能需要学习以下知识:
PHP __autoload()的设计和命名空间(namespace)的设计
各种软件设计模式:singleton, dependency injection, lazy loading
OOP(面向对象编程)PHP类的继承模式(extends class), PHP接口(implements interface)
PHP数据库操作类: mysqli类, pdo类
HTTP请求,header中的各种参数设置
Web Programming的安全事项, 如xss防护
《代码简洁之道》,《PHP Zend Coding Style》
希望能帮助到你!
大家是如何理解PHP编程中的“面向对象”呢?
你的理解很形象了, PHP的面向对象功能很弱的, 并不是完全的面向对象的。 你可以理解PHP中的类是带属性和方法的结构。 类定义只是定义,类实例才是真正的实现。
php面向对象重要吗
有的项目需要,现在很多开源项目都是MVC 面向对象模式的,继承关系好多的,我们现在做二次开发,继承关系最多8层!~