第一篇:浅谈PHP优缺点
千锋教育www.xiexiebang.com 精品课程 全程面授
浅谈PHP优缺点
众所周知,PHP语言作为服务器端开发的脚本语言,在网站开发方面非常有名。自从1995年RasmusLerdorf创建之后,根据W3Techs的调查显示在已知的服务端编程语言中,PHP就占据了82%。而其中还不乏WordPress,Facebook这样的知名科技公司。在编程语言流行度排行榜中的位置仅次于Java,在Toibe排行中名列第六。2015年PHP7发布,更是极大地改进了性能,让PHP变得更加强大。
优点一:流行,容易上手
PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。不仅如此,据统计,千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com 精品课程 全程面授
有78.1%从事PHP的人认为PHP最容易学习和上手。这是因为PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。
NewMediaCampaigns公司的开发工程师JoshLockhart曾讲过:PHP是最容易学习的网站开发语言,它能安装在绝大多数的服务器上,并且由于有实时更新的文档和问答,PHP语言相对其他语言简单易学。
优点二:开发职位很多
在服务器端的网站编程中PHP会更容易帮助你找到工作。京东、淘宝、天猫、Google、百度、新浪、腾讯QQ、微信等很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。通过各个招聘网站搜索PHP工程师,得出的数字让我们两眼放光,智联招聘PHP的招聘岗位高达43081个;前程无忧的招聘岗位人数达46008;猎聘网的相关数据为6013个,可见PHP的需求多,职位也多。
优点三:仍然在不断发展
PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用,在一些WordPress基准测试当中,性能可以达到PHP 5.6的3倍。PHP 7包含了一些重大安全改
千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com 精品课程 全程面授
进,如除去PHP安全模式,添加魔术引号,有一些新的保留关键字等等。而今年三月份,PHP 7.1.3和7.0.17已经正式发布。
缺点:设计缺陷,缺少关注
PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从C++和Java学来的。
不过,总的来说,相对于极小的缺点来说,PHP的发展空间是极其大的,这也是为何其会受到市场以及企业喜欢和欢迎的原因所在。可以说,对一门技术的喜厌程度来自很多方面,从个人习惯到项目需求,毕竟任何东西都没办法做到人见人爱。
千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com 精品课程 全程面授
如果你已经决定要学好PHP,找一家靠谱的培训机构,将会让你的学习过程事半功倍。
千锋教育一直秉承“用良心做教育”的理念,致力于打造IT教育全产业链人才服务平台,培养优质人才20000余人,同期在校学员5000余人,合作院校超500所,合作企业超10000家。全国共有十三个校区。
千锋教育PHP培训班毕业学员,其平均年薪相比行业平均年薪,足足高出五万。
千锋教育采取企业开放场景教学;讲师、班主任、项目经理立体管理;名师100%全程面授;打造高级PHP程序员,让你真正的学有所用。市场的价格就是你的价值。千锋教育,为你迅速增值。
学习6天——掌握京东、淘宝首页开发——市场对应薪资3000+; 学习30天——熟练掌握主流电商贴吧技术开发——市场对应薪资5000+; 学习45天——使用框架在阿里云、腾讯云部署博客上线真实项目——市场对应薪资6000+;
千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com 精品课程 全程面授
学习第七十天——写框架、用框架、开发微信,独立完成任意框架开发——市场对应薪资8000+;
学习90天——熟练完成B站、优酷及直播平台弹幕实现、能够部署99台以上的服务器搞秒杀——市场对应薪资10000+。
学习PHP培训,首选千锋教育。千锋教育力造IT培训领导品牌,学员百分之九十以上都是大专以上学生,力求为你营造最优质的学习环境。千锋教育现在更有0学费入学、2周免费试听、跨学科周末班限时免费送活动,一次报名,学习双技能,如同打了五折。欢迎你前来咨询,试听。
千锋教育-中国IT职业教育领先品牌
第二篇:PHP的历史和优缺点
历史
Rasmus Lerdorf为了创建他的在线简历而创造了“个人主页工具”(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
PHP虽然很容易学习,但是速度上比mod_Perl(植入Web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://)了解更多。
PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。PHP的优点
应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出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可以做到你想让它做到的一切而且无所不能!竞争对手:ASP,mod_perl,JSP
我当然不清楚ASP/JSP能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。
据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。
mod_perl与Perl一样强大,只是更快一些。
第三篇:PHP程序员
**的个人简历
个人资料
姓名: **电子邮件: ******@qq.com
名族: 汉出生日期: 1991/1/3
学历: 本科居住地址: 深圳福田
性别: 男手机号码: 186***7739
4求职意向
到岗时间:即时
期望职位:php程序员
工作性质:全职
专业技能
1、熟练掌握PHP,HTML,DIV+CSS,Javascript,Ajax,jQuery等Web开发技术。
2、熟练使用PDO、MySQL方式操作MySQL数据库系统,熟悉MySQL事物及存储过程。
3、熟悉HTML,DIV+CSS前台页面技术和XML的使用。
4、熟悉网页静态化、Smarty缓存,thinkPHP缓存,掌握Web防SQL注入。
5、孰悉MVC架构开发思想模式,熟练使用Smarty模板,ThinkPHP框架,ZendFramework框架。
6、熟练掌握Zend Studio, Dreamweaver,Notepad++, EclipsePHP等常用Web开发工具;
7、了解Linux基本操作。
项目经验 项目一
项目名称:地球新闻网
软件环境:
开发工具:
项目描述: linux+apache+mysql+php Zend Studio 1.该项目是一个集各种新闻的网站。2.前台采用div+css,javascript等
技术进行页面布局,Javascript和Jquery技术制作下拉菜单、表单验证、复选框等效果。3.后台采用全面向对象开发,良好的运用了MVC三层架
构模式。
责任描述:独立开发
项目体会:通过开发这次项目,使我对制作一个网站有了一个全面的了解,也同时增
加了我的技术能力;通过该网站使我了解只有想不到,没有做不到。同时
也想到在这个发展迅速的社会,我们只有不断努力学习新的技术才能满足
客户的要求。
项目二
项目名称:聚焦购物商城
软件环境:
开发工具:
项目描述: windows+apache+mysql+php Zend Studio 8.0 该项目是一个大型的网站商城,采用thinkPHP主流框架开发。
前台包括:商品列表、搜索、商品详细页、注册、登录、购物车、会员
中心、评论等。后台有:商品管理、订单管理、会员管理、商家管理等。
满足用户购物流程的各种需求
责任描述: 负责完成了MySQL数据表、字段、索引的分析与创建,主页的图片轮换,商品详细
页,购物车模块,登录注册等功能,以及后台商品管理模块。
项目体会:通过此次项目的实战,让我对thinkPHP的掌握更加深刻,同时给我感觉的是使用模板的开发速度之快,更实现的HTML的代码与PHP代码的分
离,使得拥有更好的扩展以及维护。
工作经验
2012/8—2013/4业聚医疗器械(深圳)有限公司技术员 工作感想
之前的公司主要是生产和研发介入性医疗器械的一家公司,我的工作任务主要从事公司导管支架的研发,研发多种不同尺寸型号的球囊扩张导管。在我的工作中,使我学到了很多东西,让我变得更加细心,做事情更加注重细节,更有时间观念等等。
教育经历
2013/4—2013/8达内PHP培训php程序员主要学习了:linux系统常用操作命令,HTML/CSS,Javascript/Jquery/Ajax的前台技术,学习了用Linux系统和Windows系统开发项目,学习了Smarty模板,Zendframework,thinkPHP框架的使用,学习了DEDECMS二次开发。
在学习的过程中,自己独立完成了一个小项目《地球新闻网》,和同学合作完
成了一个商城网站《聚焦购物》,通过这两个项目的实战,为我以后的工作打
下了坚实的基础。
2008/9—2012/7湖北信息工程专修学院电子商务本科主要学习了:计算机应用基础,管理学,电子商务概论,网页设计与制作,电子商务法,商务沟通与谈判及商业职业道德专业课程,安全教育等课程。
通过这些课程的学习,使我对电子商务系统建设与管理打下了良好的基础,同时也使我拥有较强的沟通能力和职业道德水准。
个人评价 1.本人细心,乐观积极心态,吃苦耐劳,勇于挑战自我,热爱学习,喜欢总结;
2.具备良好的团队精神,能很好的与团队协作开发,有良好的沟通能力,喜欢交朋友;
3.性格开朗,阳光,喜欢篮球,游泳,羽毛球等体育运动。
第四篇:PHP实验报告
PHP实验报告
实验内容:php操作数据库
实验步骤:首先在Mysql,text数据库中建立一个t_stu的表。
2.新建conn.php文件,链接Mysql数据库,并方便接下来的包含和引用。
3.新建index.php文件,连接数据库,然后再设计页面插入一个表格,将建立的学生表的、字段、类型都加入到表中;然后在每个位置的相应出编写一个PHP程序,从而将数据库中的相应信息导入进来。(其中可以添加边框颜色以及背景颜色,使页面设计更加美观)
4.设置每页显示数据数进行分页操作,新建page.class.php文件,设计分页php程序,并在index.php中引用,部分代码如下:
5.在设计表格中添加删除修改操作,实现对学生信息的即时修改,在点击修改后跳转到修改页面,新建upddate.php文件,设置更新php程序。代码如下:
6.新建delete.php
文件,实现删除的操作,代码如下:
7.新建add.php文件,实现增添学生的功能。8.测试程序
在ie中输入127.0.0.1/index.php,运行结果如下:
点击增加学生:
点击修改
点击删除:删除一条学生信息。以上为全部实验报告。
第五篇:PHP面试题
PHP程序员初级面试题
一、解释一下语句作用,并标示出以下哪一句不会把 John 新增到 users 阵列?
$users[] = 'john';
array_add($users,‟john‟);
array_push($users,„john‟);
$users ||= 'john';
二、sort()、assort()、和 ksort()有什么分别?它们分别在什么情况下使用? sort()
asort()
ksort()
三、以下的代码会产生什么?为什么? $num =10;function multiply(){ $num =$num *10;} multiply();echo $num;
四、reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?
五、哪些函式可以用来向正在执行的脚本中插入函式库?
六、foo()与 @foo()有什么分别?
七、你如何替 PHP 的应用程式侦错?
八、“===”是什么?试举一个“==”是真但“===”是假的例子。
九、你会如何定义一个没有成员函式或特性的类别 myclass?
十、include 和 include_once 有什么分别?require 又如何?
十一、以下哪一个函式可以把浏览器转向到另一个页面? redir()
header()
location()
redirect()
十二、以下哪一个函式可以用来开启档案以便读/写? fget()
file_open()
fopen()
open_file()
十三、mysql_fetch_row()和 mysql_fetch_array()有什么分别?
十四、下面的代码用来做什么?请解释。
$date='08/26/2003';print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,“[url=file://2///1///3%22,$date]2/1/3”,$date[/url]);
十五、试写出几个输出一段 HTML 代码的方法。(一)
成功把 John 新增到阵列 users。函式 array_add()无定义。
成功把 John 新增到阵列 users。
语法错误。
(二)根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。
与 sort()一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。
根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。
(三)由于函式 multiply()没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。
(四)Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。
$myVariable = “its' value”;Myfunction(&$myVariable);// 以 reference 传送参数以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。
(五)对这道题目不同的理解会有不同的答案,我的第一个想法是插入 PHP 函式库不外乎 include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括 com 物件和.net 函式库,所以我们的答案也要分别包括 com_load 和 dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。
(六)foo()会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。@foo()在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程式都使用 @mysql_connect()和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。
(七)我并不常这样做,我曾经试过很多不同的侦错工具,在 Linux 系统中设定这些工具一点也不容易。不过以下我会介绍一个近来颇受注目的侦错工具。
PHPAPD,第一步是执行以下的指令安装: pear install apd安装后在你的脚本的开头位置加入以下的语句开始进行侦错: apd_set_pprof_trace();执行完毕,打开以下档案来查阅执行日志: apd.dumpdir 你也可以使用 pprofp 来格式化日志。
(八)“===”是给既可以送回布尔值“假”,也可以送回一个不是布尔值但却可以赋与“假”值的函式,strpos()和 strrpos()便是其中两个例子。
问题的第二部份有点困难,想一个“==”是假,但是“===”是真的例子却很容易,相反的例子却很少。但我终于找到以下的例子:
if(strpos(“abc”, “a”)== true){ // 这部分永不会被执行,因为 “a” 的位置是 0,换算成布尔值“假”}if(strpos(“abc”, “a”)=== true){ // 这部份会被执行,因为“===”保证函式 strpos()的送回值不会换算成布尔值.}(九)
class myclass{}(十)$obj = new myclass();(十一)
使用语句:$this->propertyName,例如:
class myclass{ private $propertyName;public function __construct(){ $this->propertyName = “value”;}}(十二)
三者都是用来在脚本中插入其他档案,视乎 url_allow_fopen 是否核准,这个档案可以从系统内部或外部取得。但他们之间也有微细的分别:
include():这个函式容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出系统警告并继续执行脚本。include_once():它跟 include()的功能相似,正如它的名字所示,在脚本的执行期间,有关档案只会被插入一次。require():跟 include()差不多,它也是用来在脚本中插入其他档案,但若果档案不存在,它会发出系统警告,这个警告会引致致命错误令脚本中止执行
(十三)这不是一个 PHP 函式,会引致执行错误。
这个是正确答案,header()用来插入卷头资料,可以用来使浏览器转向到另一个页面,例如:
header(“Location: http:// 标签,为何要自行编写正规表达式?好了,便当作是面试的一道考题吧,我会这样回答:
$stringOfText = ”
This is a test
“;$expression = ”/<(.*?)>(.*?)(.*?)>/“;echo preg_replace($expression, ”[url=file://2/]2[/url]“, $stringOfText);// 有人说也可以使用 /(<[^>]*>)/ $expression = ”/(<[^>]*>)/“;echo preg_replace($expression, ”“, $stringOfText);(十八)这正是为何我老是告诉别人选择适当的编程语言,若果你只用一种语言的话你怎么能回答这道问题?这道问题很简单,Perl 所有阵列变量都是以 @ 开头,例如 @myArray,PHP 则沿用 $ 作为所有变量的开头,例如 $myArray。至于 Perl 表示散列表则用 %,例如 %myHash,PHP 则没有分别,仍是使用 $,例如
$myHash。
(十九)最主要的俩各选择是 session 和 cookie。使用 session 的方法是在每一页的开始加上 session_start(),然后利用 $_SESSION 散列表来储存 session 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie()函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。
还有一个不那么可靠的方法,就是利用访客的 IP 地址,这个方法有特定的危险性。
(二十)这个可能是我最喜欢的函式库,自从 PHP 4.3.0 版本后 GD 便内建在 PHP 系统中。这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上。
(二十一)嗯,你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo: echo ”My string $variable";你也可以使用这种方法:
echo <<
我们不要为一个简单的问题引发一场舌战,正如我经常说的:“为工作选择适合的语言,不要把工作迁就语言。”我个人认为 Perl 十分适合用作命令行工具,虽然它在网页应用上也有不错的表现,但是它的真正实力在命令行上才能充分发挥。同样地,PHP 虽然可以在控制台的环境中使用,但是个人认为它在网页应用上有更好的表现,PHP 有大量专门为网页应用而设计的函式,Perl 则似乎以命令行为设计之本。
个人来说两种语言我都喜欢,在大学期间我经常使用 Perl、PHP 和 Java,可惜工作上我使用 C#,但在家里我花不少时间操练 PHP、Perl、Ruby(现正学习)和 Java,保持我的技能知识在最新状态。很多人问我 C 和 C++ 怎么样,它们是否仍有机会在我的应用中占一席位,我的答案基本上是“否”,我近来的工作主要集中在网页开发,虽然 C 和 C++ 也可以用来写网页,但它们到底不是为这种工作而设计的,“为工作选择适合的语言”,若果我需要编写一个控制台应用,用来展示 bubble sort、quick sort 和 merge sort 的效能比较,我一定会使用 C / C++。若果我需要编写一个相片簿系统,我会使用 PHP 或者 C#(我认为制作用户介面方面.NET 语言比网页更加)。