`
txf2004
  • 浏览: 7041441 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP:我的迷茫和信心

阅读更多

2000 年初的时候,ASP 还是 Web 开发的主流,当时我刚刚在 Windows98 下通过电话线加内置猫上网。那时网上突然看到大家都在风传一种新的 Web 开发语言 - PHP。那时的 PHP 还是 3.0 版本,可以和 mySQL 数据库配合使用(那时的 muySQL 也是一只丑陋的小鸭子)。安装和配置倒也容易,根据网上搜索到的“教程”可以很快完成,可以很方便的对表进行增、删、改的基本操作。但是对于当时生命力旺盛又不用配置运行环境的 ASP 来说,PHP 很容易被人看做一个 Web 开发的小玩具、小插曲。

之后多年,PHP的发展一直处在不温不火的状态。说它好的人认为:它安全,效率高,小巧优雅,支持的函数多等等。说它不好的人认为:它支持厂家少、学习资料少、开发的网站少等等。但都是随便说说,到底有多大可信度,无据可考。

本人虽然接触PHP比较早,但是截至两年前,一直没用PHP正式做过什么应用,原因很多:

1,ASP我用的早,熟悉并且有大量的代码和资料积累。如果再进入PHP阵营,势必会有重复开发,造成浪费。
2,本人供职的单位,所有的应用都是ASP开发的,没有PHP的应用需求。如果贸然转PHP开发,会引入2种语言集成的问题,使问题复杂化。
3,本人供职的单位,所有的操作系统都是Windows系列的,不存在跨OS平台的问题,没有使用PHP(包括JSP)的必要。
4,PHP的开发厂家是家小公司,担心其倒闭造成PHP无后续支持,并且造成资料和开发人员短缺。
5,PHP的流行程度和前途不明朗,担心造成当时的学习投入浪费。如果ASP淘汰,学JSP比学PHP更有前途保障。
6,PHP没有著名大型项目开发案例,只适合开发中小型网站系统。而JSP可以开发网站,配合Oracle数据库和JAVA中间件,可以构建大型企业应用,可以保护学习成本。
7,PHP是一门主要面向过程的语言,4.0版本以前对类的支持不完善,开发大型、复杂应用不理想。
8,当时提供PHP空间的虚拟主机商比较少。
9,PHP的变量前边需要加个$是我本人特别反感的(就像Delphi的程序块非要用Begin…End包起来一样,我喜欢Delphi,但反感这个拙劣的程序块语法,我更喜欢 C 语言的{……},简洁而又方便)。

但是,后来情形有所变化,PHP的发展出现了拐点。

1,一个是国内的Discuz!论坛迅速普及,要开论坛系统,需要选择PHP环境。后来的DeDeCMS、X-spaces等,更把PHP应用推向深入。
2,再一个是,PHP本身发展迅速,还推出了5.0版本,对类的支持趋于完善。还风传PHP得到了微软的支持,会在WindowsServer8.0的IIS7.0里自动支持PHP运行环境。
3,可能是由于PHP使用的人比较少,网络针对其攻击比较少,显得比较安全。
4,PHP针对Web开发,包括mySQL数据库操作,提供了大量现成的函数,使开发工作大大简化。
5,由于ASP天长日久,使用的人越来越多,就像当年淘汰VB一样,需要一种新鲜的语言来代替它。在从ASP向ASP.NET的迁移过程中,许多人选择了比C#简单和易用的PHP语言。
6,由于ASP语言被人玩“滥”了,出于势利和商业原因考虑,需要一种更“专业”和“阳春白雪”的语言来代替它,PHP正好扮演了这个角色。试想一下,一家公司老总给客户介绍说,自己的技术团队多么优秀,但是还在用老掉牙的ASP做开发,该是多么的泄气!(其实ASP本身无疑仍是优秀的,但是傲慢和偏见已经笼罩到ASP头上了,谁之过?)

我并不想让大家包括我自己,经常处于无限的、无奈的知识淘汰和更新中,但是当大家一致要求学习PHP,当用人单位不再招收ASP程序员而是PHP程序员的时候,开设PHP课程就成为一种必然的趋势了。我不得不放下我熟悉的Basic语法,转而经常忍受那门变量前带$的语言了。

其实当我已经比较习惯在变量前加$的时候,我发现PHP语言其实还是很优秀的!尽管它吸收了包括C语言在内的许多语言的语法特点,还带着过多的面向过程编程的特点,多少有点大杂烩甚至不伦不类的味道;尽管书店里还没有PHP语言的专柜,我需要在各家出版社的分类里仔细寻觅它的踪迹,但是我发现它对Web编程提供了大量的、友好的、人性化的支持,它的开发团队一定是个Web开发的天才团队,他们知道Web程序员最需要什么,在哪里需要。

不管是Windows用户还是Unix/Linux用户,由于PHP能和IIS、Apache集成在一起,所以PHP开发的应用,可以只开发一次就可以跨平台运行,不用过多考虑空间提供商的运行环境。这点比起ASP来是个现实而又真实的优点。

当然PHP现在还不能说已经或即将代替ASP的地位,因为Python和RoR(Ruby on Rails)这些完全面向对象的脚本语言正在飞速增长,结果很难预料。但是PHP起码在目前看来,其前景还是比较看好的。这世界没用永远开不败的花朵,就像当年如日中天的Fortran、Cobel、Borlabd C++、PB、Delphi等语言一样,有一天PHP也会老去,那又是将来的一段回忆和佳话。但是今天,我们与PHP同行。

张庆(网眼)
电脑学习网http:www.why100000.com
2008-2-18

分享到:
评论

相关推荐

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程91:PHP修改和删除XML内容的原理和方法 PHP100视频教程92:在线支付接口之PHP支付宝接口开发 PHP100视频教程93:在线支付接口之PHP云网接口开发 PHP100视频教程94:SVN (Subversion) 配置与安装...

    深入PHP:面向对象、模式与实践(第3版)(源码)

    《深入PHP:面向对象、模式与实践(第3版)》是PHP开发领域的一本经典著作,它旨在帮助读者深入理解PHP的面向对象编程、设计模式以及最佳实践。该书的源码提供了一种直观的方式来探索和实践书中所讲述的概念。在阅读...

    PHP 导出Excel (注:导出带图片的EXCEL也支持)

    在PHP开发中,导出Excel数据是一项常见的任务,特别是在数据报表和分析场景中。本教程将专注于使用PHP生成带有图片的Excel文件,并解决文件保存后可能出现的乱码问题。我们将探讨如何利用PHP的第三方库来实现这一...

    初学者最感迷茫的PHP问题

    1. **页面间变量传递**:在PHP中,可以通过GET、POST和SESSION方式传递变量。在最新版本中,自动全局变量已关闭,因此需使用`$_GET['varname']`、`$_POST['varname']`和`$_SESSION['varname']`来获取变量。为了代码...

    phpWord,php生成word文档,替换word内容重新生成

    `phpWord`是一个PHP库,它允许开发者通过纯PHP代码来创建、修改和读取`.docx`格式的Word文档,从而实现数据的导出或者自定义报告的生成。在本场景中,你提到的需求是将学生信息导出到Word文档,并能更新文档内容后供...

    PHP实战:对象,设计,敏捷(PHP in Action :Objects, Design, Agility )

    1 PHP和现代软件开发 (PHP and modern software development) 2 PHP的对象 (Objects in PHP) 3 有效的使用PHP的类 (Using PHP classes effectively) 4 了解对象和类 (Understanding objects and classes) 5 了解类...

    简单的PHP测试网页

    3. **Calendar页面**:日历功能通常涉及PHP的日期和时间处理,可能使用了`date()`和`mktime()`等函数,或者可能利用了PHP的DateTime类。`activecalendar.css`和`activecalendar.php`可能是实现动态日历功能的CSS样式...

    PHP和MySQL Web开发(原书第4版)带书签

    前段时间学习PHP 下了个PHP和MySQL Web开发(原书第4版)高清版,有将近200M,PDF文档不过没有书签,花了一天的时间将书签添加上去了,精确到了三级目录。 我没有权限上传200M的文件,所以放到百度空间了,下载后是...

    php动态网页作业 大学生网页 php+mysql

    这篇PHP动态网页作业是针对大学生设计的,旨在教授如何结合PHP和MySQL技术创建交互式的Web应用。PHP是一种广泛使用的开源脚本语言,尤其适合于Web开发,可以嵌入到HTML中,实现动态网页内容的生成。而MySQL则是一种...

    class.phpmailer.php

    结合`class.phpmailer.php`、`class.smtp.php`和`class.pop3.php`,我们可以构建出稳定的邮件系统,满足各种邮件应用场景的需求。对于初学者而言,理解并掌握PHPMailer的使用方法,将极大地提升其在PHP邮件处理方面...

    ZbarCode For PHP (PHP识别二维码)

    支持 PHP 版本 (Thread Safe): 5.5.* x86 5.5.* x64 5.6.* x86 5.6.* x64 测试环境 Windows7 64bit PHP 5.5.35 TS x86 PHP 5.5.35 TS x64 PHP 5.6.21 TS x86 PHP 5.6.21 TS x64 将对应的版本 ...

    PHP连接串口程序php_ser

    php实现RS232串口通信 下载php_ser_5.2.0.zip 解冻把php_ser放到ext目录下, php.ini里加上: extension=php_ser.dll PHP code string ser_version( void ) void ser_open( string port, int baudrate, int databits, ...

    精美php网站模板 php源码

    "精美php网站模板"是指预先设计和编码完成的网页布局,用于快速搭建具有专业外观和功能的网站。这些模板通常包括HTML、CSS、JavaScript以及PHP代码,使得开发者无需从零开始编写所有页面,极大地提高了开发效率。 1...

    PHP MQTT 应用实例

    1. **phpMQTT.php**: 这个文件包含了PHP MQTT客户端的核心类,实现了连接、订阅和发布等基本操作。它可能包括构造函数来初始化MQTT连接参数,如服务器地址、端口、用户名和密码,以及方法如`connect()`、`subscribe...

    php_igbinary.dll、php_redis.dll

    在PHP扩展库中,`php_igbinary.dll`和`php_redis.dll`是两个非常重要的组件,它们分别用于增强PHP与特定数据存储系统的交互能力。接下来,我们将详细探讨这两个DLL文件以及它们所代表的扩展。 首先,我们来看`...

    SQLSRV20 Microsoft Drivers for PHP for SQL Server2.0

    SQLSRV20 Microsoft Drivers for PHP for SQL Server2.0 PHP自带的php_mssql.dll文件已经满足不了sql server2005及其以上版本的使用了。微软也随之发布了SQL Server Driver for PHP来做相应的支持。 其中SQL ...

    php-5.4.7.tar.gz

    3. **配置PHP-FPM**:启用FastCGI进程管理器,编辑 `/etc/php/php-fpm.conf` 和 `/etc/php/fpm/pool.d/www.conf`,设置监听端口和用户组等。 4. **启动服务**:`sudo /usr/local/php/sbin/php-fpm`,并添加到开机...

    PHP精粹 编写高效PHP代码pdf

    在深入理解PHP语言特性和最佳实践的基础上,我们可以从以下几个方面来探讨相关知识点: 1. **PHP语言基础**:了解PHP的基本语法,包括变量定义、数据类型(如字符串、整型、浮点型、数组、对象等)、流程控制结构...

    微信支付Native扫码方式(PHP)

    returnGoodsUrl.php:用户扫描二维码链接后,微信将链接中的商品ID、openId以及其他信息post到该脚本,该脚本负责返回与商品ID对应的商品信息。 notifyUrl.php :用户支付商品后,微信服务器会将商品信息、支付结果...

Global site tag (gtag.js) - Google Analytics