PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP 文件可包含文本、HTML 标签以及脚本。PHP 文件中的脚本可在服务器上执行。
什么是 PHP?
PHP: 超文本预处理器,服务器脚本语言,在服务器上执行,开源,支持多种数据库PHP文件:
1、可包含文本、HTML 标签以及脚本
2、向浏览器返回纯粹的 HTML
3、文件后缀是 ".php"、".php3" 或 ".phtml"
PHP语法:
PHP 的脚本块以 <?php 开始,以 ?> 结束。您可以把 PHP 的脚本块放置在文档中的任何位置。
<?php ?>
向浏览器输出文本 "Hello World":
<html> <body> <?php echo "Hello World"; ?> </body> </html>PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
有两种通过 PHP 来输出文本的基础指令:echo 和 print。
PHP 中的注释
<html> <body> <?php //This is a comment /* This is a comment block */ ?> </body> </html>
PHP 中的变量
1.变量用于存储值,比如数字、文本字符串或数组。2.所有变量都是以 $ 符号开始的。
3.在 PHP 中设置变量的正确方法是:
$var_name = value;
创建一个存有字符串的变量,和一个存有数值的变量:
<?php $txt = "Hello World!"; $number = 16; ?>
PHP 是一门松散类型的语言
变量使用前不需要声明数据类型
变量的命名规则
- 变量名必须以字母或下划线 "_" 开头。
- 变量名只能包含字母数字字符以及下划线。
- 变量名不能包含空格。如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)。
PHP 中的字符串
字符串变量用于包含字符串的值。
PHP 脚本把字符串 "Hello World" 赋值给名为 $txt 的字符串变量:
<?php $txt="Hello World"; echo $txt; ?>
以上代码的输出:
Hello World
并置运算符
并置运算符 (.) 用于把两个字符串值连接起来。两个变量连接在一起,请使用这个点运算符 (.) :
<?php $txt1="Hello World"; $txt2="1234"; echo $txt1 . " " . $txt2; ?>
以上代码的输出:
Hello World 1234
使用 strlen() 函数
strlen() 函数用于计算字符串的长度。
算出字符串 "Hello world!" 的长度:
<?php echo strlen("Hello world!"); ?>
以上代码的输出:
12
使用 strpos() 函数
strpos() 函数用于在字符串内检索一段字符串或一个字符。如果在字符串中找到匹配,该函数会返回第一个匹配的位置。如果未找到匹配,则返回 FALSE。在字符串中找到子字符串 "world":
<?php echo strpos("Hello world!","world"); ?>
以上代码的输出是:
6
PHP 运算符
运算符用于对值进行运算.
算数运算符
运算符 | 说明 | 例子 | 结果 |
---|---|---|---|
+ | Addition | x=2 x+2 | 4 |
- | Subtraction | x=2 5-x | 3 |
* | Multiplication | x=4 x*5 | 20 |
/ | Division | 15/5 5/2 | 3 2.5 |
% | Modulus (division remainder) | 5%2 10%8 10%2 | 1 2 0 |
++ | Increment | x=5 x++ | x=6 |
-- | Decrement | x=5 x-- | x=4 |
赋值运算符
运算符 | 说明 | 例子 |
---|---|---|
= | x=y | 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 |
%= | x%=y | x=x%y |
比较运算符
运算符 | 说明 | 例子 |
---|---|---|
== | is equal to | 5==8 returns false |
!= | is not equal | 5!=8 returns true |
> | is greater than | 5>8 returns false |
< | is less than | 5<8 returns true |
>= | is greater than or equal to | 5>=8 returns false |
<= | is less than or equal to | 5<=8 returns true |
逻辑运算符
运算符 | 说明 | 例子 |
---|---|---|
&& | and | x=6 y=3 (x < 10 && y > 1) returns true |
|| | or | x=6 y=3 (x==5 || y==5) returns false |
! | not | x=6 y=3 !(x==y) returns true |
if、elseif 以及 else 语句用于执行基于不同条件的不同动作。
如果当前日期是周五,下面的代码将输出 "Have a nice weekend!",否则会输出 "Have a nice day!":
<html> <body> <?php $d=date("D"); if ($d=="Fri"){ echo "Have a nice weekend!"; } else echo "Have a nice day!"; ?> </body> </html>
ElseIf 语句
实例
如果当前日期是周五,下面的例子会输出 "Have a nice weekend!",如果是周日,则输出 "Have a nice Sunday!",否则输出 "Have a nice day!":
<html> <body> <?php $d=date("D"); if ($d=="Fri") echo "Have a nice weekend!"; elseif ($d=="Sun") echo "Have a nice Sunday!"; else echo "Have a nice day!"; ?> </body> </htmlPHP 中的 Switch 语句用于执行基于多个不同条件的不同动作。
<?php switch ($x) { case 1: echo "Number 1"; break; case 2: echo "Number 2"; break; case 3: echo "Number 3"; break; default: echo "No number between 1 and 3"; } ?> </body> </html>PHP数组
数组能够在单独的变量名中存储一个或多个值。
有三种数组类型:
-
数值数组
- 带有数字 ID 键的数组 关联数组
- 数组中的每个 ID 键关联一个值 多维数组
- 包含一个或多个数组的数组
数值数组
数值数组存储的每个元素都带有一个数字 ID 键。
例子 1
在这个例子中,会自动分配 ID 键:
$names = array("Peter","Quagmire","Joe");
例子 2
在这个例子中,我们人工分配的 ID 键:
$names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe";
可以在脚本中使用这些 ID 键:
<?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?>
以上代码的输出:
Quagmire and Joe are Peter's neighbors
关联数组
例子 1
在本例中,我们使用一个数组把年龄分配给不同的人:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
例子 2
本例与例子 1 相同,不过展示了另一种创建数组的方法:
$ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34";
可以在脚本中使用 ID 键:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?>
以上脚本的输出:
Peter is 32 years old.
多维数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。
例子 1
在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:
$families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) );
如果输出这个数组的话,应该类似这样:
Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) )
例子 2
让我们试着显示上面的数组中的一个单一的值:
echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?";
以上代码的输出:
Is Megan a part of the Griffin family?
PHP 中的循环语句用于执行相同的代码块指定的次数。
循环:while, for, foreach, do...while
while语句
例子
下面的例子示范了一个循环,只要变量 i 小于或等于 5,代码就会一直循环执行下去。循环每循环一次,变量就会递增 1:
<?php $i=1; while($i<=5) { echo "The number is " . $i . "<br />"; $i++; } ?>
do...while 语句
<?php $i=0; do { $i++; echo "The number is " . $i . "<br />"; } while ($i<5); ?>
for 语句
<?php for ($i=1; $i<=5; $i++) { echo "Hello World!<br />"; } ?>
foreach 语句
<?php $arr=array("one", "two", "three"); foreach ($arr as $value) { echo "Value: " . $value . "<br />"; } ?>
输出:
Value:one
Value:two
Value:three
PHP 函数
PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 700 个内建的函数。
例子
一个简单的函数,在其被调用时能输出我的名称的:
<?php function writeMyName() { echo "David Yang"; } writeMyName(); ?>
使用 PHP 函数
<?php function writeMyName() { echo "David Yang"; } echo "Hello world!<br />"; echo "My name is "; writeMyName(); echo ".<br />That's right, "; writeMyName(); echo " is my name."; ?>
以上代码的输出:
Hello world! My name is David Yang. That's right, David Yang is my name.
PHP 函数 - 添加参数
例子 1
下面的例子讲输出不同的名字,但姓是相同的:
<?php function writeMyName($fname) { echo $fname . " Yang.<br />"; } echo "My name is "; writeMyName("David"); echo "My name is "; writeMyName("Mike"); echo "My name is "; writeMyName("John"); ?>
上面的代码的输出:
My name is David Yang. My name is Mike Yang. My name is John Yang.
例子 2
下面的函数有两个参数:
<?php function writeMyName($fname,$punctuation) { echo $fname . " Yang" . $punctuation . "<br />"; } echo "My name is "; writeMyName("David","."); echo "My name is "; writeMyName("Mike","!"); echo "My name is "; writeMyName("John","..."); ?>
上面的代码的输出:
My name is David Yang. My name is Mike Yang! My name is John Yang...
PHP 函数 - 返回值
例子
<?php function add($x,$y) { $total = $x + $y; return $total; } echo "1 + 16 = " . add(1,16); ?>
以上代码的输出:
1 + 16 = 17
PHP 表单和用户输入
$_GET 和 $_POST 用于检索表单中的值,比如用户输入<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
"welcome.php" 文件类似这样:
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>
脚本的输出:
Welcome John. You are 28 years old.
$_GET 变量用于收集来自 method="get" 的表单中的值。
$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值
$_GET 变量用于收集来自 method="get" 的表单中的值。
从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),
并且对发送的信息量也有限制(最多 100 个字符)。
例子
<form action="welcome.php" method="get"
>
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
"welcome.php" 文件现在可以通过 $_GET 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的 ID 键):
Welcome <?php echo$_GET["name"]
; ?>.<br /> You are <?php echo$_GET["age"]
; ?> years old!
$_REQUEST 变量
PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。
PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!$_POST 变量用于收集来自 method="post" 的表单中的值
为什么使用 $_POST?
- 通过 HTTP POST 发送的变量不会显示在 URL 中。
- 变量没有长度限制。