大家好,这里是莫乔多,也就是本站博主。在B站上,我也称自己为莫云(其实是我小说里的一个主人公)。在PHP学习开始之前,我们有必要先了解一下,PHP到底是什么,它能用在什么地方,怎么去学它。这个第零课,就是给还未认识PHP的人设计的,以便于快速进入我们的第一课:如何搭建PHP开发环境。
首先是第一个问题:PHP到底是什么?
PHP就是“超文本预处理器”(原名:Personal Home Page,现名:PHP: Hypertext Preprocessor),是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
上面的介绍,相信大家在百度百科就能看见。不过,我这里再进行一些比较详细的阐述。
PHP在编程语言里面的定义为:脚本语言、动态类型语言、弱类型语言。脚本语言就是指可以通过简单的编辑器编辑并由翻译器来实施执行指令的编程语言,例如Python、PHP、JS、JSP、ASP等,它们的优点是基本不需要环境方面的兼容代码(JS除外),缺点是需要在运行环境里部署翻译器;动态类型语言指的是在运行过程中才确定变量的类型,优点是变量的声明和定义比较宽松和方便,缺点是无法通过编译检查是否有类型方面的错误;弱类型语言的定义还是有一些争议的,暂且可以理解为语言本身会对各个类型做很多隐式类型转换,例如1+"2"=3,true+"1"之类的,在判断时也会自动将两个不同类型的值转换为同一类型的值,通常这样的语言会有一个检查类型的判断,在PHP中则是===(三等号,类型和值必须完全一致才为true)。
PHP的语法也比较宽松,一些逻辑流程和基本类型相对于C/C++、Java来说有更方便的语法糖(除了注解,注解在Java中是一个很方便的语法特性,在PHP中只能通过注释间接实现),例如对数组、字符串的处理等等,不过在方便开发的同时,也留下了一些隐患,导致代码质量参差不齐。不过,这不能完全怪PHP,因为代码是人写的,对自己严格的人不会写出难以维护的代码,与编程语言的关系不大,这个我们后面再说。
PHP其实也是一种模板语言,因为PHP原生支持HTML直接输出,可以在HTML中嵌入PHP代码。新手在开发时,常用HTML和PHP混写,这其实不是什么问题,重要的是,业务逻辑千万不要混入HTML中,因为这样难以维护,这个我们后面也会提到。PHP的开发者也为大家提供了模板语言的写法,例如:
<?php foreach($items as $item): >
<p><?php echo $item; ?></p>
<?php endforeach; ?>
这一段代码将会把$items数组中的元素循环输出在p标签中。这样的写法非常简单明了,美观且易于维护。
说到这里,第二个问题:它能用在什么地方,其实答案是:哪里都能用。但是换一个说法:它适合用在什么方面,那答案就是:网页。
上面说过,PHP也是一种模板语言,所以它不但可以做后端,而且更适合做前端。例如我的这个博客,就是直接使用PHP来做模板的,没有采用第三方模板引擎。换言之,其实PHP不需要特地使用第三方模板引擎来渲染模板,它本身很适合做模板。那么问题来了,它跟JAVA、Python、Go语言等比起来,要更合适做后端吗?这个倒不一定。PHP相比其他语言来说,学习成本较低,尤其是有C/C++基础和JAVA基础的同学,学起来其实就差不多,但是它目前的性能和JAVA相比还有一定差距,因此不大适合处理高并发网站,至少说方案没有那么成熟。但是,对于初学者来说,没有必要纠结太多这方面的问题,所以只要选用自己喜欢的语言就好了。
最后,如何学习PHP呢?
有一定编程基础的小伙伴,直接食用我的教程+文档其实就OK了;如果编程基础不扎实的小伙伴呢,建议配套其他的教学视频,进度会更快。我也计划在写文字教程的同时,出系列教程视频,欢迎到时候观看。
PHP最好用的地方就在于它帮你完成了很多繁杂的工作,你只要专心实现具体的功能就好了,如果配合框架还能完成更多复杂的任务,这个也会在后面介绍。所以,学习PHP千万不要什么都去自己实现,如果是学习怎么造轮子那另当别论,但是能用自带函数完成的任务,尽量不要重写一遍。
第零课就讲到这里,欢迎大家留言提建议!