红岩网校工作站程序部培训2基本的 PHP 语法.docx
《红岩网校工作站程序部培训2基本的 PHP 语法.docx》由会员分享,可在线阅读,更多相关《红岩网校工作站程序部培训2基本的 PHP 语法.docx(35页珍藏版)》请在冰豆网上搜索。
红岩网校工作站程序部培训2基本的PHP语法
红岩网校工作站程序部
王正阳
资源来自互联网,版权归原作者所有,内部培训参考。
基本的PHP语法(Syntax)
如果你要在网页里写一段PHP代码,你应以
php为PHP脚本块的开始,以?
>为结束。
php
?
>
在支持简写的服务器上,你可以使用
和?
>来开始和结束PHP脚本块。
?
>
为了保证你的PHP文件能够在不同环境下正常运行,强烈建议你使用第一种方法。
即以
php开始,以?
>结束。
一个简单的PHP文件的例子
你可以用Notepad编写如下代码,这就是一个最简单的PHP文件。
php
echo"B"
?
>
其中的echo是PHP最常用的函数之一,作用是输出文本。
保存PHP文件
PHP文件以.php作为文件扩展名。
比如你可以将上面的例子保存为blabla.php。
运行PHP示例文件
在浏览器里输入上述PHP示例文件的URL路径,你会看到显示的结果是:
B
请用浏览器查看该示例网页源代码,你会发现,你看不到上面示例文件中写的PHP代码,你看到的只是PHP脚本执行后形成的HTML,如下所示:
B
用户看不到PHP文件的源代码,只能看到PHP文件执行后的输出结果。
PHP语言中分号(Semicolon)的作用:
指令分隔符(Instructionseparation)
PHP语言中,分号(Semicolon)表示一个PHP指令的结束,记住在每个PHP指令结束后加上分号,不过在一个PHP脚本块中,最后一个指令后可以不必加分号,因为?
>自动暗含了一个分号,当然你加分号也不会出错。
比如我们用分号分隔两个echo语句,如下:
php
echo"B";
echo"Hello"
?
>
空格
空格在两个PHP指令之间是被忽略的。
下面三种写法,输出HTML结果是一样的。
php
echo"B";
echo"Hello"
?
>
php
echo"B";
echo"Hello"
?
>
php
echo"B";echo"Hello"
?
>
变量是用来存储数据的容器,变量可以存储各种数据,比如数字、字符串、数组。
变量可以被多次调用。
PHP变量(Variables)
PHP的变量必须以$符开始。
PHP的变量声明语法如下:
$variable_name=value
很多初学PHP的人会忘记在变量名前加$符,这是个初学者常犯的错误。
PHP语言是区分大小写(case-sensitive)的,变量$a和$A不是同一个变量,而表示两个不同的变量。
下面一个示例中声明了两个变量,并输出两个变量的值。
php
$score=100;
$txt="B";
echo$score;
echo$txt;
?
>
如果一个变量的值是字符串,要用双引号将字符串围起来。
比如:
$txt="B"
如果一个变量的值是数字类型,直接写数字即可,不用双引号,比如:
$score=100
PHP是一种弱类型的语言(looselytypedlanguage,也被翻译成“松散类型”,“宽松类型”),意思是说,当你声明变量时,不需要事先声明变量的数据类型,PHP会自动将变量转换成适当的数据类型。
与此对应的是强类型语言(stronglytypedlanguage),比如VB,在VB中声明一个变量时,必须同时确定该变量的数据类型,如下示例
DimtxtAsString
DimscoreAsInteger
PHP变量(Variables)命名规则
变量名必须以字母或者下划线"_"开头
变量名只能包含字母和数字和下划线(a-Z,0-9,_)
变量名不能包含空格。
如果变量名两个词以上,可以用下划线分隔,比如$my_name,或者可以使用大写来区分,比如$myName。
前一章节我们讲述了PHP变量(Variables),主要讲的用户自定义的变量。
PHP自身还提供了很多预定义的变量(predefinedvariables)。
从PHP4.1.0以后,PHP提供了一些超全局变量(superglobals),通过这些超全局变量,我们可以获得有关web服务器,环境和用户输入的信息。
之所以叫做超全局变量(superglobals),是因为它们在任何范围都可用。
PHP超全局变量(Superglobals)
$GLOBALS
$_SERVER
$_GET
$_POST
$_COOKIE
$_FILES
$_ENV
$_REQUEST
$_SESSION
这些超全局变量你只要先大概记住名字就可以,我们会在后面的教程具体提到这些变量的用处。
PHP语言中,echo是一个最常用的内置函数。
它的作用,就是输出一个或者多个字符串。
用echo输出一个字符串
在PHP语法中,我们已经举过一个简单的echo的示例,如下:
php
echo"B"
?
>
返回的HTML结果是:
B
我们将这个例子再写复杂一点,加上HTML标记,如下:
php
echo"
B
"
?
>
返回的HTML结果是:
B
用echo输出多个字符串
echo也可以输出多个字符串,用逗号,分隔。
示例如下:
php
echo"","and",""
?
>
返回的显示结果是:
and
用echo输出变量的值
echo还可以输出变量的值。
示例如下:
php
$a="";
echo$a
?
>
上面代码中,$a是一个变量,$a的值是"",用echo输出$a的值。
显示的结果是:
再比如,输出两个变量的值:
php
$a="";
$b="";
echo$a,$b
?
>
返回的显示结果是:
echo的字符串参数里含有变量
如果echo的字符串参数里含有变量,有两种情况:
第一种是字符串参数用双引号,echo输出变量的值;第二种是字符串参数使用单引号,则输出变量名。
字符串采用双引号的示例如下:
$a="justincase";
echo"takethegun,$a";
返回的结果是:
takethegun,justincase
上例中,字符串采用双引号,在字符串里的变量输出变量的值。
再看字符串用单引号的情况。
示例如下:
$a="justincase";
echo'takethegun,$a';
在字符串使用单引号的情况下,返回的结果是输出变量名称,而不是变量的值:
takethegun,$a
有关PHP变量,详见PHP变量。
PHP字符串(Strings)
字符串,就是一系列字符。
字符串是PHP中常用的数据类型之一。
字符串通常有两种方法定义:
单引号
双引号
单引号指定字符串
指定一个字符串最简单的方法是用单引号(字符')围起来。
比如
'havefun'
如果一个字符串里含有单引号,怎么办呢?
这时候就需要用到一个转义符,反斜杠(字符\)。
在字符串里的单引号之前要加一个反斜杠,也就是说,在字符串里,用\'来表示单引号。
示例如下:
php
echo'I\'mnice.'
?
>
上面示例显示的结果是:
I'mnice.
如果你需要在单引号之前或者在字符串末尾需要出现一个反斜杠,则需要用两个反斜杠表示。
示例如下:
php
echo'I\\\'mnice.';
echo'Helpothers\\'
?
>
上面的示例显示的结果是:
I\'mnice.Helpothers\
在其它情况下,反斜杠不起转义作用,比如\n,还是会显示\n。
示例如下
php
echo'oneforall\nallforone'
?
>
返回的显示结果是:
oneforall\nallforone
双引号指定字符串
指定一个字符串还可以用另外一种方法,就是用双引号(字符")将其围起来。
比如:
"havefun"
如果在一个字符串里含有双引号,我们需要在双引号前加转义符反斜杠,即用\"来表示双引号。
示例如下:
php
echo"Isaid\"Yes\".";
?
>
返回的显示结果是:
Isaid"Yes".
如果你需要在双引号之前或者在字符串末尾需要出现一个反斜杠,则需要用两个反斜杠表示。
示例如下:
php
echo"hi\\\"wow";
echo"cool\\"
?
>
该示例显示结果如下:
hi\"wowcool\
用双引号指定字符串比用单引号允许更多转义。
如果你需要更多转义,推荐用双引号来指定字符串。
转义符号
说明
\n
换行(LF或ASCII字符0x0A(10))
\r
回车(CR或ASCII字符0x0D(13))
\t
水平制表符(HT或ASCII字符0x09(9))
\\
反斜线
\$
美元符号
\"
双引号
\[0-7]{1,3}
此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2}
此正则表达式序列匹配一个用十六进制符号表示的字符
字符串运算符
字符运算符有2个。
一个是连接运算符.,用来连接两个字符串;一个是连接赋值运算符.=,它将右边参数附加到左边的参数后。
连接运算符.的示例如下:
php
echo"Hello"."World"
?
>
返回显示结果为:
HelloWorld
连接赋值运算符.=示例如下:
php
$a="good";
$a.="foryou";
echo$a
?
>
上面语句中,$a.="foryou"相当于$a=$a."foryou"
该示例返回的显示结果为:
goodforyou
PHP注释(Comments)
在编程时,给代码加上简明扼要的注释是一个非常好的习惯,代码注释可以帮助自己日后记忆,也可以帮助他人看懂和使用你的代码。
PHP注释(Comments)有两种类型,一种是单行注释,一种是多行注释。
PHP单行注释语法
在一行中所有//符号右面的文本都被视为注释,因为PHP解析器忽略该行//右面的所有内容。
示例如下,红色字体部分就是单行注释的内容。
php
echo"B";//这是单行注释
?
>
你也这样这样写,一行只写注释,不写代码,如下:
php
//这是单行注释
echo"B";
//这是单行注释
?
>
PHP多行注释语法
PHP多行注释以/*开头,以*/结束。
在/*和*/之间,可以写多行注释。
示例如下,红色部分就是多行注释的内容。
php
echo"B";
/*
这是多行注释
这是多行注释
*/
?
>
PHP数据类型(DataTypes)
PHP语言有8种基本类型。
这8种基本类型又分成三类:
标量类型,复合类型和特殊类型。
标量类型(scalartypes)
布尔(boolean)
整数(integer)
浮点数(即小数,float或者double)
字符串(string)
复合类型(compoundtypes)
数组(array)
对象(object)
特殊类型(specialtypes)
资源(resource)
NULL(NULL)
对于初学者来说,经常用到的是字符串(string)、整数(integer)、浮点数(float)、数组(array)和布尔类型(boolean)。
整数和浮点数
整数和浮点数的使用比较简单,看个示例就明白了。
php
$a=1;//整数类型
$b=8.26;//浮点数类型
echo$a;
echo"
";
echo$b;
?
>
字符串
PHP字符串前面我们已经介绍过,字符串要用单引号或者双引号围起来,详见PHP字符串。
布尔类型
布尔类型只有两个值,一个是TRUE,一个是FALSE。
这两个值是不区分大小写的(case-insensitive),比如你可以写成True,true,False,false。
布尔类型,通常用于判断条件是否符合,示例如下:
php
$a=false;
if($a){
echo"yesyes";
}
else{
echo"nono";
}
?
>
示例的意思是,当变量$a的值为布尔值TRUE时,输出"yesyes",当变量$a的值为布尔值FALSE时,则输出"nono",而该示例中,变量$a的值为布尔值FALSE,所以最后输出"nono"。
数组
数组表示一组相关的数据。
数组我们会在下一章节详述,详见PHP数组。
PHP是弱类型语言
PHP是一种弱类型的语言(looselytypedlanguage,也被翻译成“松散类型”,“宽松类型”),意思是说,当你声明变量时,不需要事先声明变量的数据类型,PHP会自动将变量转换成适当的数据类型。
与此对应的是强类型语言(stronglytypedlanguage),比如VB,在VB中声明一个变量时,必须同时确定该变量的数据类型,如下示例
DimtxtAsString
DimscoreAsInteger
PHP数组(Arrays)
本章讲述PHP数组(Arrays)。
数组的定义
数组表示一组相关联的数据。
在PHP中,我们用array()定义一个数组。
示例如下:
php
$a=array("orange","apple","peach");
echo$a[0];
?
>
其中,$a=array("orange","apple","peach");定义了一个数组变量,该数组有三个数据。
数组的每个值之间用逗号分隔。
下面的语句echo$a[0]表示输出数组的第一个值,即"orange"。
注意,数组是以0为基数,而不是1。
数组变量方括号[]里的值,我们称为数组的索引key。
数组是key-value一一对应的组合
数组的基本单位是元素(elements)。
每个元素由一对索引(key,也称为“键”)和值(value)组成。
每个值,都有一个相对应的索引(key)。
通过指明数组的key,我们获取相对应的值,比如$a[0]。
前面示例的数组定义方法,是数组定义的一种简写方式,没有定义数组每个值的key。
在缺省情况下,如果不定义数组每个值的key,key就从0开始每次自动加1。
$a=array("orange","apple","peach");
$a=array(0=>"orange",1=>"apple",2=>"peach");
上面两句代码效果是一样的,第一句没有指定数组的key,系统就自动给数组的每个值加key,key的值从0开始每次加1。
第二句代码,是在定义数组的时候,给数组的每个值加赋予对应的key。
定义数组中一对key-value的写法是:
key=>value,比如0=>"orange"表示key为0,对应的值为"orange"。
指定key比不指定key的写法虽然复杂,但是也给予你设定key的自由度,你可以随意设定数组每个值的key。
比如:
php
$a=array(1=>"orange",3=>"apple",5=>"peach");
echo$a[1];
?
>
另外,数组的key还可以用字符串表示。
注意:
用字符串作key,在指明key的时候,要加引号。
比如:
php
$a=array("os"=>"WindowsXP","lang"=>"Chinese","sp"=>"ServicePack3");
echo$a["os"],"
";
echo$a["lang"],"
";
echo$a["sp"];
?
>
注:
key只能是整数和字符串。
定义数组还可以有另外一种方法,示例如下:
$a["os"]="WindowsXP";
$a["lang"]="Chinese";
$a["sp"]="ServicePack3";
效果和$a=array("os"=>"WindowsXP","lang"=>"Chinese","sp"=>"ServicePack3");一样。
修改数组
增加一个数组元素的语法:
$array_name[key]=value
删除一个数组元素,使用unset函数,语法如下:
unset($array_name[key])
增加和删除一个数组元素的示例如下,其中$a["c"]=300;表示增加一个key为"c",值为300的数组元素;unset($a["b"]);表示删除一个key为"b"的数组元素:
php
$a=array(a=>100,b=>200,d=>500);
$a["c"]=300;
unset($a["b"]);
foreach($aas$key=>$value)
{
echo$key.":
".$value."
";
}
?
>
该示例的返回结果是:
a:
100
d:
500
c:
300
PHP运算符(Operators)
此章节我们介绍PHP的运算符(Operators)。
运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。
Anoperatorissomethingthatyoufeedwithoneormorevalues(orexpressions,inprogrammingjargon)whichyieldsanothervalue(sothattheconstructionitselfbecomesanexpression).
算术运算符(ArithmeticOperators)
运算符
说明
示例
结果
+
加
2+2
$a+$b
4
变量$a和$b的和
-
减
3-2
$a-$b
1
变量$a和$b的差
*
乘
3*2
$a*$b
6
变量$a和$b的乘积
/
除
3/2
$a/$b
1.5
变量$a除以$b的结果
%
余数
3/2
$a%$b
1
变量$a除以$b的余数
赋值运算符(AssignmentOperators)
基本的赋值运算符是=。
你可能会以为它是"等于",其实不是的。
它实际上意味着把右边表达式的值赋给左边的运算数。
比如$a=5,表示将5这个值赋给变量$a。
在PHP语言中,=表示赋值,==才表示等于。
==参见下面的比较运算符。
比较运算符(ComparisonOperators)
运算符
说明
示例
==
等于
6==6返回TRUE
!
=
不等于
7!
=8返回TRUE
<
小于
8<7返回FALSE
>
大于
8>7返回TRUE
<=
小于等于
8<=9返回TRUE
>=
大于等于
8>=9返回FALSE
逻辑运算符(LogicalOperators)
运算符
说明
示例
&&
and与
$a&&$b
如果$a和$b都为TRUE,返回TRUE
||
or或
$a||$b
如果$a,$b中任何一个为TRUE,返回TRUE
!
not非
!
$a
如果$a不是TRUE,返回TRUE
xor
xor或异
$axor$b
如果$a,$b中任何一个为TRUE,但不同时为TRUE,返回TRUE
递增/递减运算符(Incrementing/DecrementingOperators)
运算符
说明
示例
++
递增