在学习php之前,需要对下面的知识有基本的了解:
通过PHP,可以不受限于只输出HTML。您还能够输出图像、PDF文件、甚至Flash影片。您也可以输出任何文本,比如XHTML和XML。
PHP脚本在服务器上执行,然后向浏览器发送回纯HTML结果。
PHP脚本可放置于文档中的任何位置。
PHP脚本以结尾:
PHP文件通常包含HTML标签以及一些PHP脚本代码。
下面的例子是一个简单的PHP文件,其中包含了使用内建PHP函数"echo"在网页上输出文本"HelloWorld!"的一段PHP脚本:
运行结果:
HelloWorld!
注释:PHP语句以分号结尾(;)。PHP代码块的关闭标签也会自动表明分号(因此在PHP代码块的最后一行不必使用分号)。
PHP代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。
注释用于:
在下面的例子中,所有这三天echo语句都是合法的(等价):
HelloWorld!HelloWorld!HelloWorld!
不过在PHP中,所有变量都对大小写敏感。
在下面的例子中,只有第一条语句会显示$color变量的值(这是因为$color、$COLOR以及$coLOR被视作三个不同的变量):
MycarisredMyhouseisMyboatis
变量是存储信息的容器:
11
从上面的表达式z=x+y,我们能够计算出z的值是11。
在PHP中,这三个字母被称为变量。
注释:请把变量视为存储数据的容器。
正如代数,PHP变量可用于保存值(x=5)和表达式(z=x+y)。
变量的名称可以很短(比如x和y),也可以取更具描述性的名称(比如carname、total_volume)。
注释:PHP变量名称对大小写敏感!
PHP没有创建变量的命令。
变量会在首次为其赋值时被创建:
注释:如果您为变量赋的值是文本,请用引号包围该值。
在上面的例子中,请注意我们不必告知PHP变量的数据类型。
PHP根据它的值,自动把变量转换为正确的数据类型。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP有三种不同的变量作用域:
下面的例子测试了带有局部和全局作用域的变量:
然后,如果在myTest()函数之外输出两个变量的值,那么会输出$x的值,但是不会输出$y的值,因为它是局部变量,并且在myTest()内部创建。
注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。
global关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用global关键词:
PHP同时在名为$GLOBALS[index]的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子可以这样重写:
注释:该变量仍然是函数的局部变量。
在PHP中,有两种基本的输出方法:echo和print。
echo和print之间的差异:
提示:echo比print稍快,因为它不返回任何值。
echo是一个语言结构,有无括号均可使用:echo或echo()。
下面的例子展示如何用echo命令来显示不同的字符串(同时请注意字符串中能包含HTML标记):
LearnPHPStudyPHPatW3School.com.cnMycarisaVolvo
print也是语言结构,有无括号均可使用:print或print()。
下面的例子展示如何用print命令来显示不同的字符串(同时请注意字符串中能包含HTML标记):
Helloworld!I'mabouttolearnPHP!
下面的例子展示如何用print命令来显示字符串和变量:
字符串、整数、浮点数、逻辑、数组、对象、NULL。
字符串是字符序列,比如"Helloworld!"。
字符串可以是引号内的任何文本。您可以使用单引号或双引号:
整数是没有小数的数字。
整数规则:
在下面的例子中,我们将测试不同的数字。PHPvar_dump()会返回变量的数据类型和值:
int(5985)int(-345)int(140)int(39)
浮点数是有小数点或指数形式的数字。
PHPvar_dump()会返回变量的数据类型和值:
float(10.365)float(2400)float(8.0E-5)
逻辑是true或false。
数组在一个变量中存储多个值。
在下面的例子中,我们将测试不同的数组。PHPvar_dump()会返回变量的数据类型和值:
array(3){[0]=>string(5)"Volvo"[1]=>string(3)"BMW"[2]=>string(4)"SAAB"}
对象是存储数据和有关如何处理数据的信息的数据类型。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
特殊的NULL值表示变量无值。NULL是数据类型NULL唯一可能的值。
NULL值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为NULL,将变量清空:
strlen()函数返回字符串的长度,以字符计。
下例返回字符串"Helloworld!"的长度:
提示:strlen()常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。
strpos()函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回FALSE。
下例检索字符串"Helloworld!"中的文本"world":
提示:上例中字符串"world"的位置是6。是6(而不是7)的理由是,字符串中首字符的位置是0而不是1。
常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有$符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
如需设置常量,请使用define()函数-它使用三个参数:
下例创建了一个对大小写敏感的常量,值为"WelcometoW3School.com.cn!":
WelcometoW3School.com.cn!greeting
下例创建了一个对大小写不敏感的常量,值为"WelcometoW3School.com.cn!":
WelcometoW3School.com.cn!WelcometoW3School.com.cn!
下面介绍可用于PHP脚本中的各种运算符.
php算数运算符
运算符
名称
例子
结果
+
加法
$x+$y
$x与$y求和
-
减法
$x-$y
$x与$y待的差数
*
乘法
$x*$y
$x与$y的乘积
/
除法
$x/$y
$x与$y的商数
%
模数
$x%$y
$x与$y的余数
下例展示了使用不同算数运算符的不同结果:
PHP赋值运算符用于向变量写值。
PHP中基础的赋值运算符是"="。这意味着右侧赋值表达式会为左侧运算数设置值。
赋值
等同于
描述
x=y
右侧表达式为左侧运算数设置
x+=y
x=x+y
加
x-=y
x=x-y
减
x*=y
x=x*y
乘
x/=y
x=x/y
除
x%=y
x=x%y
下例展示了使用不同赋值运算符的不同结果:
.
串接
$txt1="Hello"$txt2=$txt1."world!"
现在$txt2包含"Helloworld!"
.=
串接赋值
$txt1="Hello"$txt1.="world!"
现在$txt1包含"Helloworld!"
下例展示了使用字符串运算符的结果:
++$x
前递增
$x加一递增,然后返回$x
$x++
后递增
返回$x,然后$x加一递增
--$x
前递减
$x减一递减,然后返回$x
$x--
后递减
返回$x,然后$x减一递减
下例展示了使用不同递增/递减运算符的不同结果:
==
等于
$x==$y
如果$x等于$y,则返回true。
===
全等(完全相同)
$x===$y
如果$x等于$y,且它们类型相同,则返回true。
!=
不等于
$x!=$y
如果$x不等于$y,则返回true。
$x$y
!==
不全等(完全不同)
$x!==$y
如果$x不等于$y,且它们类型不相同,则返回true。
>
大于
$x>$y
如果$x大于$y,则返回true。
小于
$x
如果$x小于$y,则返回true。
>=
大于或等于
$x>=$y
如果$x大于或者等于$y,则返回true.
小于或等于
如果$x小于或者等于$y,则返回true
下例展示了使用某些比较运算符的不同结果:
and
与
$xand$y
如果$x和$y都为true,则返回true。
or
或
$xor$y
如果$x和$y至少有一个为true,则返回true。
xor
异或
$xxor$y
如果$x和$y有且仅有一个为true,则返回true。
&&
$x&&$y
||
$x||$y
!
非
!$x
如果$x不为true,则返回true。
PHP数组运算符用于比较数组:
联合
$x和$y的联合(但不覆盖重复的键)
相等
如果$x和$y拥有相同的键/值对,则返回true。
全等
如果$x和$y拥有相同的键/值对,且顺序相同类型相同,则返回true。
不相等
不全等
如果$x与$y完全不同,则返回true。
下例展示了使用不同数组运算符的不同结果:
array(4){["a"]=>string(3)"red"["b"]=>string(5)"green"["c"]=>string(4)"blue"["d"]=>string(6)"yellow"}bool(false)bool(false)bool(true)bool(true)bool(true)
条件语句用于基于不同条件执行不同的动作
在您编写代码时,经常会希望为不同的决定执行不同的动作。您可以在代码中使用条件语句来实现这一点。
在PHP中,我们可以使用以下条件语句:
if语句用于在指定条件为true时执行代码。
switch语句用于基于不同条件执行不同动作。
如果希望有选择地执行若干代码块之一,请使用Switch语句。
使用Switch语句可以避免冗长的if..elseif..else代码块。
PHPwhile循环在指定条件为true时执行代码块。
在编写代码时,经常需要反复运行同一代码块。可以使用循环来执行这样的任务,而不是在脚本中添加若干几乎相等的代码行。
在PHP中,我们有以下循环语句:
只要指定的条件为真,while循环就会执行代码块。
请注意,dowhile循环只在执行循环内的语句之后才对条件进行测试。这意味着dowhile循环至少会执行一次语句,即使条件测试在第一次就失败了。
下面的例子把$x设置为6,然后运行循环,随后对条件进行检查:
PHPfor循环执行代码块指定的次数。
如果已提前确定脚本运行的次数,可以使用for循环。
下面的例子显示了从0到10的数字:
下面的例子演示的循环将输出给定数组($colors)的值:
redgreenblueyellow
PHP的真正力量来自它的函数:它拥有超过1000个内建的函数。
除了内建的PHP函数,我们可以创建我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。
在下面的例子中,我们创建名为"writeMsg()"的函数。打开的花括号({)指示函数代码的开始,而关闭的花括号(})指示函数的结束。此函数输出"Helloworld!"。如需调用该函数,只要使用函数名即可:
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用familyName()函数时,我们同时要传递一个名字(例如Bill),这样会输出不同的名字,但是姓氏相同:
LiZhang.HongZhang.TaoZhang.XiaoMeiZhang.JianZhang.
下面的例子中的函数有两个参数($fname和$year):
LiZhang.Bornin1975HongZhang.Bornin1978TaoZhang.Bornin1983
下面的例子展示了如何使用默认参数。如果我们调用没有参数的setHeight()函数,它的参数会取默认值:
5+10=157+13=202+4=6
数组能够在单独的变量名中存储一个或多个值。
数组在单个变量中存储多个值:
如果有一个项目列表(例如汽车品牌列表),在单个变量中存储这些品牌名称是这样的:
解决方法是创建数组!
数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值。
在PHP中,array()函数用于创建数组:
有两种创建索引数组的方法:
索引是自动分配的(索引从0开始):
IlikeVolvo,BMWandSAAB.
count()函数用于返回数组的长度(元素数):
如需遍历并输出索引数组的所有值,可以使用for循环,就像这样:
有两种创建关联数组的方法:
以上例子输出:Peteris43yearsold.
如需遍历并输出关联数组的所有值,可以使用foreach循环,就像这样:
Key=Bill,Value=35Key=Steve,Value=37Key=Peter,Value=43
在PHP高级知识中再介绍。
数组中的元素能够以字母或数字顺序进行升序或降序排序。
PHP数组排序函数如下:
下面的例子按照字母升序对数组$cars中的元素进行排序:
BMWSAABVolvo
下面的例子按照数字升序对数组$numbers中的元素进行排序:
下面的例子按照数字降序对数组$numbers中的元素进行排序:
下面的例子根据键对关联数组进行升序排序:
Key=Peter,Value=43Key=Steve,Value=37Key=Bill,Value=35
下面的例子根据键对关联数组进行降序排序:
超全局变量在PHP4.1.0中引入,是在全部作用域中始终可用的内置变量。
PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行global$variable;就可以访问它们。
这些超全局变量是:
$GLOBALS这种全局变量用于在PHP脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP在名为$GLOBALS[index]的数组中存储了所有全局变量。变量的名字就是数组的键。
下面的例子输出95,展示了如何使用超级全局变量$GLOBALS:
在上面的例子中,由于z是$GLOBALS数组中的变量,因此在函数之外也可以访问它。
$_SERVER这种超全局变量保存关于报头、路径和脚本位置的信息。
下面的例子展示了如何使用$_SERVER中的某些元素:
运行结果;
下表列出了您能够在$_SERVER中访问的最重要的元素:
PHP$_REQUEST用于收集HTML表单提交的数据。
下面的例子展示了一个包含输入字段及提交按钮的表单。当用户通过点击提交按钮来提交表单数据时,表单数据将发送到标签的action属性中指定的脚本文件。在这个例子中,我们指定文件本身来处理表单数据。如果您需要使用其他的PHP文件来处理表单数据,请修改为您选择的文件名即可。然后,我们可以使用超级全局变量$_REQUEST来收集input字段的值:
下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到标签的action属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个PHP页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量$_POST来收集输入字段的值:
$_GET也可以收集URL中的发送的数据。
假设我们有一张页面含有带参数的超链接:
下面的例子是"test_get.php"中的代码:
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!