初识PHP
虽然是做前端的,可是平时看书、做项目都会与后端PHP相关,但却不是很了解,并经常听PHP大神说:PHP是世界上最好的语言!因此,通过这篇博文学习、总结PHP,来认识认识这个“世界上最好的语言”。
第一部分:PHP简介
1.PHP的全称是Hypertext Preprocessor,即超文本预处理器,它是一种通用开源脚本语言。们知道JavaScript也是一种运行在浏览器上脚本语言来控制页面内容,而PHP是运行在服务器端的脚本语言读取数据库把内容显示在页面上。另外,PHP是开源的,免费使用的,因此有着无数的民间高手,贡献这很多使用的类库,使其有强大的生命力,相对于微软公司的ASP.NET这种收费的情况而言还是有些些优势的,并且PHP可以运行在各种平台上,但是ASP.NET只能运行在windows平台下。当然ASP.NET也有很多优秀的地方是PHP不可及的。
2.那么什么是PHP文件呢?我们有时可以看到以.php作为后缀名的文件,实际上这就是PHP文件,该文件可以包含文本、HTML、JavaScript代码和PHP代码,且PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器。
3.PHP能做什么呢?
- 可以生成动态的页面内容(这个在前端通过ajax实现)
- 可以创建、打开、读取、写入、关闭服务器上的文件
- 可以收集表单数据(我们在前端写的表单 其中包括name value,这些都是和PHP相关的)
- 可以添加、删除、修改我们的数据库中的数据
当然,除此之外,PHP还有很多强大的功能。通过PHP,我们不再限于输出HTML,还可以输出图像、PDF文件、flash电影等。
4.为什么使用PHP? 前面介绍过,它可以在不同的平台上运行(windows、linux、unix、MAC os x等),并且它与目前几乎所有的正在被使用的服务器兼容(Apache、IIS等)。
第二部分:PHP语法
一. 基本的PHP语法如下:
PHP脚本可以放在文档中的任何位置,PHP脚本以<?php开始,以?>结束,如下代码:
<?php //PHP代码 ?>
php文件的默认文件扩展名为.php,这个文件中通常包含了HTML标签和一些PHP脚本代码,比如下面的PHP文件实例:
<!DOCTYPE html> <html> <body> <h1> 我的第一个PHP文件</h1> <?php echo "Hello World!"; ?> </body> </html>
运行结果如下:
对于上面的PHP文件,有以下几点需要注意:
- 我在文件中没有加入<meta>标签,实际上也是可以加的,只是我省略了而已
- 我们注意到PHP中的每个代码行都必须以分号结束,分号是一种分隔符,用于把指令集区分开来。
- echo指令用于输出,另外还有print指令。注意发音:
另外,我在PHP代码里使用了注释。//为单行注释,和JavaScript是相同的。多行注释可以使用/* */。
二.PHP中的变量
1.基本概念
和其他所有语言都一样,变量即存储信息的“容器”。与代数类似,可以给PHP变量赋予某个值(比如 x=10)或者表达式(z=x+y)。 毫无疑问的,变量可以是很短的名称(如x和y这种只有一个字母)或者是更具描述性的名称(如age、carname、totalvolume)。规则如下;
- 变量必须以$符号开始,后面跟着变量的名称。
- 变量名必须以字母或者下划线字符开始(注意:在JavaScript中变量必须以字母、下划线或$开始,这里类似的,知识必须用$说明是一个变量)
- 变量名只能包含字母、数字以及下划线(A-z、0-9和_),这个和JavaScript是相同的。
- 变量名中不能包含空格。
- 变量名是区分大小写的。(注意:PHP语句和PHP变量都是区分大小写的)
2.创建(声明PHP变量)
实际上,PHP没有变量声明的命令。变量在我们第一次赋值给它的时候被创建。如下所示:
<?php $txt="hello world"; $x=5; $y=10; $z=$x+$y; ?>
通过上面的php代码,实际上我们就创建了$txt变量、$x变量、$y变量、$z变量。
通过上面的例子我们可以看出:
- 把一个文本值(即字符串)赋值给一个变量时,必须在文本值两侧加上双引号。
- 可以看出,我们声明变量时没有指定该变量的数据类型,故PHP和JavaScript一样都是弱类型语言。而强类型语言如Java、C++是需要在使用变量前先声明(定义)变量的类型(如int double float string等等)和名称的。于是,PHP会根据变量的值自动把变量转化为正确的数据类型。
3.变量作用域
和其他所有语言一样,变量的作用域是脚本中变量可以被引用/使用的部分。
PHP中有四种不同的变量作用域。分别是 local 、global、static、parameter。
(1)首先讨论全局变量和局部变量。
全局变量与全局作用域:在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,若要在一个函数中访问全局变量,需要使用global关键字。(关键:这里的全局变量竟然不能被函数访问!!!!)
局部变量:在PHP函数内部声明的变量时局部变量,仅能在函数内部访问(这一点与JavaScript相同)。
举例如下:
<?php $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; } myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; ?>
结果如下:
几点讨论:
- 调用myTest()函数时,只输出了y,因为y是函数内的局部变量,而没有输出x!(即前面所提到的,函数不能直接访问全局变量)
- 在外部直接输出x和y时,只输出了x,因为x时全局变量,而没有输出y,因为y时局部变量。
- 我们可以看到代码 echo "变量 x 为: $x"; 在PHP中可以将变量放进字符串中输出(而在JavaScript中必须将变量和字符串使用+来拼接)。