php类的三大特性(为什么称PHP为脚本语言)

本文目录
为什么称PHP为脚本语言
PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点,本文章并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML器)的基本知识和一些编程思想。
PHP简介
PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在时你可以用HTML的常规方法编写PHP。
***隐藏网址***
PHP的版本
Php最新是 Php5,Php5相比Php4,是一个飞跃. PHP5处理对象部分的内核完全重新开发过,提供更多功能的同时也提高了性能,
Php5三大特色功能为:
* 新的对象模式 (New Object Mode)
* 异常处理 (Exceptions)
* 名称空间 (Namespace)
熟悉 DOTNET,JAVA,C++等面向对象开发的朋友 会发现 Php5已经完全面向对象化了.这也让一些攻击Php是传统的结构性语言的人无语了.
PHP常用Web系统
下面是一些以PHP开发的广受欢迎的Web系统.
ShopEX网店系统 Discuz!论坛 PHPWIND论坛
PHPBB论坛 VBB论坛 OsCommerce网店
SABlog博客 Plog博客 CMSware 内容管理
DedeCMS 织梦 Molyx论坛
Php开发相关应用系统
Php开发组合是 Php+Mysql+Zend+IIS/Apache
Mysql4.0:Mysql 是一套优秀的开源数据库系统,可以参看相关介绍. Php支持各种类型的数据库,但由于 Php和Mysql都归于开源软件,两者结合在Web开发上表现优异.
Zend5 优化器: Zend优化器可以对Php代码加密,保护Php代码的安全性, 更重要的是 Zend 优化器可以极大的提高Php程序运行效率. 经过Zend优化器优化后的代码比未加密优化的代码运行效率 可以提高3-10倍.
IIS/Apache Web服务器: IIS是Microsoft 提供的优秀的Web服务器.性能稳定安全,功能强大. Apache是一个优秀的开源Web服务器.在Linux上应用广泛.
Php应用误区
误区1 Php在Linux+Apache运行:实际上 Php可以在各种流行平台下运行. Windows/Linux 都是可以支持的,Windows2003 + IIS6 +Php5 的运行性能表现 绝对可以和 Linux+Apache+Php 相同甚至更高. 并且 安全上更加出色.
误区2 Php使用的很少: 国外很多网站是以Php开发的,这相比国内 Asp的广泛应用成鲜明的对比, 现在国内Php的应用慢慢扩大影响.用的人慢慢也多了. 实际国内很多大型的网络公司 都有大规模的使用Php开发. 典型的有 腾讯,雅虎,163,百度 ..........
php的历史
1995年,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
***隐藏网址***
PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。
PHP的先进之处
应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点:
- 学习过程简单
PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。
PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。
你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。
- 数据库连接
PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
- 可扩展性
就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。
- 面向对象编程
PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。
- 可伸缩性
传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。
- 更多特点
PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能!
三种Web开发主流技术的评价之PHP
PHP Personal HomePage
PHP是一个什么原因出现的呢?它是一个技术人员希望能用一个快速的方面来完成他自己的个人主页中的一个小应用 而在他一发不可收时出现了php 它使一个人能在多种操作系统下迅速的完成一个轻型的Web应用 所以在短短的几年里 php迅速的升级了它的版本 同时在GNU的世界里找到了一个青梅竹马的伙伴 Apache 这终于让php有了基础 能在一个最佳的环境中运行 同时由于两个产品都是公开源代码的产品 所以大家可以使用它们的源代码将这两个产品用最完美的方式结合到一起 使用起来就如一个产品一样 个人认为php是自由软件在web应用平台上一个决胜的工具 如果没有php的出现 还会有许多人认为自由软件就代表了对开发人员的高技术要求 难记的代码 复杂的工具 php使一个会使用basic的人员在极短的时间里快迅学习并完成用户需要的应用
怎么说php呢?如果说ASP是一个 哪么php说的更精确了可以说php是一个纯粹的Script翻译器 这也是php由 升级为 的一个重大原因 在 这个版本里它重写了语法分析器 从而加快了php整体的效能 而且从中你也就会明白为什么php需要支持这种或是那种扩充功能时它一定要与相应系统的lib库进行再编绎的原因 正因为它是正宗的 翻译器 所以它是将script翻译成为需要执行的函数 再去执行它们 外部扩充不能由一些 动态加载 的方式进行 所以只能静态的编绎进php中(这只能在windows中除外)
强势
一种能快速学习 跨平台 有良好数据库交互能力的开发语言 ASP比不上它的就是这种跨平台能力了 而正是它的这种能力让Unix/Linux有了一种与ASP媲美的开发语言 语法简单 书写容易 现在市面上也有了大量的书 同时Internet上也有大量的代码可以共享 对于一个初学者想学些 高深的Unix 下的开发来说是一个决好的入手点
与Apache及其它扩展库结合紧密 php与Apache可以以静态编绎的方式结合起来 而与其它的扩展库也可以用这样的方式结合(除外的就是Windows平台了) 这样的方式的最大的好处就是最大化的利用了cpu时和内存 同时极为有效的利用了apache的高性能的吞吐能力 同时外部的扩展也是静态连编 从而达到了最快的运行速度 由于与数据库的接口也使用了这样的方式 所以使用的是本地化的调用 这也让数据库发挥了最佳效能
良好的安全性 由于php本身的代码开放所以它的代码在许多工程师手中进行了检测 同时它与apache编绎在一起的方式也可以让它具有灵活的安全设定 所以到现在为止 php具有了公认的安全性能
弱势
数据库支持的极大变化 由于php的所有的扩展接口都是独立团队开发完成的 同时在开发时为了形成相应数据的个性化操作 所以php虽然支持许多数据库 可是针对每种数据库的开发语言都完全不同 这样形成针对一种数据库的工发工作 在数据库进行升级后需要开发人员进行几乎全部的代码更改工作 而为了让应用支持更多种的数据库 就需要开发人员将同样的数据库操作使用不同的代码写出n种代码库出来 让程序员的工作量大大增大
安装复杂 由于php的每一种扩充模块并不是完全由php本身来完成 需要许多外部的应用库 如图形需要gd库 LDAP需要LDAP库 ……这样在安装完成相应的应用后 再联编进php中来 这也就是我以前在代码联盟新闻组中对网友所说的一定要在FreeBSD/Linux/Unix下运行php的原因 只有在这些环境下才能方便的编绎对应的扩展库 这些都是一般开发人员在使用php前所先要面对的问题 正是这样的问题让许多开发人员转而使用其它的开发语言 必竟Unix没有那么多的用户
缺少企业级的支持 没有组件的支持 哪么所有的扩充就只能依靠php开发组所给出的接口 事实上这样的接口还不够多 同时难以将集群 应用服务器这样的特性加入到系统中去 而一个大型的站点或是一个企业级的应用一定需要这样的支持的 注 在php的 版本以后加入了对servlet/javabean的支持 也许这样的支持会在以后的版本中更加增强 也许这样的支持会是php以后的企业级支持的起点
缺少正规的商业支持 这也是自由软件一向的缺点 我想在国内php的开发人员正在快速增加 相信在不久的将来 这样的支持能多起来
无法实现商品化应用的开发 由于php没有任何编绎性的开发工作 所有的开发都是基于脚本技术来完成的 所以所有的源代码都无法编译 所以做完成的应用只能是自己或是内部使用 无法实现商品化
总结
适用人群 熟悉Unix环境 需要在最少的投入下完成快速的应用开发
适用平台 FreeBSD/Linux/Unix操作系统 Apache服务器适用应用 Internet高访问量 快速数据库开发的应用
学习方式 Internet上国内丰富的资源Internet上丰富的源代码资源 完全可以参考这样的例程来完成自己的应用 市场上最近出版的好几本php手册
推荐开发工具 Home Site/PHPEd
推荐开发环境 FreeBSD /RedHat 操作系统/Apache /MySQL /P / M RAM/ G HD
推荐应用环境(最少) FreeBSD /MySQL /Apache /P / M RAM/ G HD
lishixinzhi/Article/program/PHP/201311/21489php面向对象和面向过程的区别
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。
而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。
再比如我要把这个五子棋游戏改为围棋游戏,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写。但是如果你当初就是面向对象的设计,那么你只用改动规则对象就可以了,五子棋和围棋的区别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了。)而下棋的大致步骤从面向对象的角度来看没有任何变化。
当然,要达到改动只是局部的需要设计的人有足够的经验,使用对象不能保证你的程序就是面向对象,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓面向对象的程序很难有良好的可移植性和可扩展性。
如何提高php编码能力,面向对象概念又是怎么样的
面向对象就是把所有的东西都当成对象。对象有属性,有方法,对对象的调用直接用 对象实例化名称-》方法或属性 访问
面向对象这个概念看书还是比较好理解。
编程能力的提高,只有多练,多练

更多文章:
checked in(check in和check out的区别)
2026年9月7日 01:20
java经典上机编程题(java上机题 请问这道题应该怎么写)
2026年9月7日 01:10
影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧
2026年9月7日 00:30
mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)
2026年9月7日 00:10
linux命令的选项和参数(linux为什么要有参数和选项)
2026年9月6日 20:20
perseverance的意思(preseverance的意思)
2026年9月6日 18:30
react native和uniapp(h5和uniapp和react性能)
2026年9月6日 18:00
mysql查看有哪些表(在mysql里面怎么查看数据库里面有多少表)
2026年9月6日 17:40
parsefloat()(html里的parsefloat什嘛意思)
2026年9月6日 16:30



