PHP scripts are executed on the server.
Before learning PHP, you need to have a basic understanding of the following knowledge:
##HTML
CSS
JavaScript
PHP is an acronym for "PHP Hypertext Preprocessor"
PHP Is a widely used open source scripting language
PHP scripts are executed on the server
PHP has no cost and is free to download and use
#It is powerful enough to become the core of the largest blogging system on the Internet (WordPress)!
It's deep enough to run the largest social network (facebook)!
#And it’s easy to use enough to become the preferred server-side language for beginners!
PHP files can contain text, HTML, CSS, and PHP code
PHP code Executed on the server, and the results are returned to the browser in plain text
The suffix of the PHP file is ".php"
PHP can generate dynamic page content
PHP can create, open, and read , write, delete and close files on the server
PHP can receive form data
PHP can send and retrieve cookies
PHP can add, delete, and modify data in the database
PHP can restrict users from accessing certain pages in the website
PHP can encrypt data
Through PHP, you can not be limited to only outputting HTML. You can also export images, PDF files, and even Flash movies. You can also output any text, such as XHTML and XML.
PHP runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.)
PHP is compatible with almost all servers (Apache, IIS, etc.)
PHP supports multiple databases
PHP is free.
PHP is easy to learn and runs efficiently on the server side
The official PHP website (PHP.net) provides PHP installation instructions: http://php.net/manual/zh/install.php
The PHP script is executed on the server and then sends back pure HTML results to the browser.
PHP scripts can be placed anywhere in the document.
PHP scripts start with :
The default file extension for PHP files is ". php".
PHP files usually contain HTML tags as well as some PHP script code.
The following example is a simple PHP file, which contains a PHP script that uses the built-in PHP function "echo" to output the text "Hello World!" on a web page:
我的第一张 PHP 页面
echo "Hello World!";
?>
运行结果:
Hello World!
注释:PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
PHP 代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。
注释用于:
使其他人理解您正在做的工作 - 注释可以让其他程序员了解您在每个步骤进行的工作(如果您供职于团队)
提醒自己做过什么 - 大多数程序员都曾经历过一两年后对项目进行返工,然后不得不重新考虑他们做过的事情。注释可以记录您在写代码时的思路。
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
?>
在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
在下面的例子中,所有这三天 echo 语句都是合法的(等价):
ECHO "Hello World!
";
echo "Hello World!
";
EcHo "Hello World!
";
?>
运行结果:
Hello World!
Hello World!
Hello World!
不过在 PHP 中,所有变量都对大小写敏感。
在下面的例子中,只有第一条语句会显示 $color 变量的值(这是因为 $color、$COLOR 以及 $coLOR 被视作三个不同的变量):
$color="red";
echo "My car is " . $color . "
";
echo "My house is " . $COLOR . "
";
echo "My boat is " . $coLOR . "
";
?>
运行结果
My car is red
My house is
My boat is
变量是存储信息的容器:
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
运行结果:
11
x=5
y=6
z=x+y
在代数中我们使用字母(比如 x)来保存值(比如 5)。
从上面的表达式 z=x+y,我们能够计算出 z 的值是 11。
在 PHP 中,这三个字母被称为变量。
注释:请把变量视为存储数据的容器。
正如代数,PHP 变量可用于保存值(x=5)和表达式(z=x+y)。
变量的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname、total_volume)。
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
注释:PHP 变量名称对大小写敏感!
PHP 没有创建变量的命令。
变量会在首次为其赋值时被创建:
$txt="Hello world!";
$x=5;
$y=10.5;
?>
以上语句执行后,变量 txt 会保存值 Hello world!,变量 x 会保存值 5,变量 y 会保存值 10.5。
注释:如果您为变量赋的值是文本,请用引号包围该值。
在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。
PHP 根据它的值,自动把变量转换为正确的数据类型。
在诸如 C 和 C++ 以及 Java 之类的语言中,程序员必须在使用变量之前声明它的名称和类型。
在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
下面的例子测试了带有局部和全局作用域的变量:
$x=5; // 全局作用域function myTest() {
$y=10; // 局部作用域
echo "测试函数内部的变量:
";
echo "变量 x 是:$x";
echo "
";
echo "变量 y 是:$x";
}
myTest();
echo "测试函数之外的变量:
";
echo "变量 x 是:$x";
echo "
";
echo "变量 y 是:$x";
?>
在上例中,有两个变量 $x 和 $y,以及一个函数 myTest()。$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。
如果我们在 myTest() 函数内部输出两个变量的值,$y 会输出在本地声明的值,但是无法 $x 的值,因为它在函数之外创建。
然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。
注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子可以这样重写:
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15?>
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
注释:该变量仍然是函数的局部变量。
在 PHP 中,有两种基本的输出方法:echo 和 print。
echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
echo 是一个语言结构,有无括号均可使用:echo 或 echo()。
下面的例子展示如何用 echo 命令来显示不同的字符串(同时请注意字符串中能包含 HTML 标记):
echo "PHP is fun!
";
echo "Hello world!
";
echo "I'm about to learn PHP!
";
echo "This", " string", " was", " made", " with multiple parameters.";
?>
下面的例子展示如何用 echo 命令来显示字符串和变量:
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
echo $txt1;
echo "
";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>
运行结果
Learn PHP
Study PHP at W3School.com.cn
My car is a Volvo
print 也是语言结构,有无括号均可使用:print 或 print()。
下面的例子展示如何用 print 命令来显示不同的字符串(同时请注意字符串中能包含 HTML 标记):
print "PHP is fun!
";
print "Hello world!
";
print "I'm about to learn PHP!";
?>
运行结果:
Hello world!
I'm about to learn PHP!
下面的例子展示如何用 print 命令来显示字符串和变量:
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
print $txt1;
print "
";
print "Study PHP at $txt2";
print "My car is a {$cars[0]}";
?>
运行结果:
Learn PHP
Study PHP at W3School.com.cn
My car is a Volvo
字符串、整数、浮点数、逻辑、数组、对象、NULL。
字符串是字符序列,比如 "Hello world!"。
字符串可以是引号内的任何文本。您可以使用单引号或双引号:
$x = "Hello world!";
echo $x;
echo "
";
$x = 'Hello world!';
echo $x;
?>
整数是没有小数的数字。
整数规则:
整数必须有至少一个数字(0-9)
整数不能包含逗号或空格
整数不能有小数点
整数正负均可
可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
在下面的例子中,我们将测试不同的数字。PHP var_dump() 会返回变量的数据类型和值:
$x = 5985;
var_dump($x);
echo "
";
$x = -345; // 负数var_dump($x);
echo "
";
$x = 0x8C; // 十六进制数var_dump($x);
echo "
";
$x = 047; // 八进制数var_dump($x);
?>
运行结果:
int(5985)
int(-345)
int(140)
int(39)
浮点数是有小数点或指数形式的数字。
PHP var_dump() 会返回变量的数据类型和值:
$x = 10.365;
var_dump($x);
echo "
";
$x = 2.4e3;
var_dump($x);
echo "
";
$x = 8E-5;
var_dump($x);
?>
运行结果:
float(10.365)
float(2400)
float(8.0E-5)
逻辑是 true 或 false。
$x=true;
$y=false;
逻辑常用于条件测试。
数组在一个变量中存储多个值。
在下面的例子中,我们将测试不同的数组。PHP var_dump() 会返回变量的数据类型和值:
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>
运行结果:
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB" }
相关文章推荐:《php常用数组函数有哪些?PHP常用数组函数总结整理》
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:
$x="Hello world!";
$x=null;
var_dump($x);
?>
字符串是字符序列,比如 "Hello world!"。
strlen() 函数返回字符串的长度,以字符计。
下例返回字符串 "Hello world!" 的长度:
echo strlen("Hello world!");
?>
以上代码的输出是:12
提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
下例检索字符串 "Hello world!" 中的文本 "world":
echo strpos("Hello world!","world");
?>
以上代码的输出是:6。
提示:上例中字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
常量类似变量,但是常量一旦被定义就无法更改或撤销定义。
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
下例创建了一个对大小写敏感的常量,值为 "Welcome to W3School.com.cn!":
// 定义对大小写敏感的常量
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
echo "
";
// 不会输出常量的值
echo greeting;
?>
运行结果:
Welcome to W3School.com.cn!
greeting
下例创建了一个对大小写不敏感的常量,值为 "Welcome to W3School.com.cn!":
// 定义对大小写不敏感的常量
define("GREETING", "Welcome to W3School.com.cn!", true);
echo GREETING;
echo "
";
// 会输出常量的值
echo greeting;
?>
运行结果:
Welcome to W3School.com.cn!
Welcome to W3School.com.cn!
下面介绍可用于 PHP 脚本中的各种运算符.
运算符 |
名称 |
例子 |
结果 |
+ |
加法 |
$x + $y |
$x与$y求和 |
- |
减法 |
$x - $y |
$x与$y待的差数 |
* |
乘法 |
$x * $y |
$x与$y的乘积 |
/ |
除法 |
$x / $y |
$x与$y的商数 |
% |
模数 |
$x % $y |
$x与$y的余数 |
下例展示了使用不同算数运算符的不同结果:
$x=10;
$y=6;
echo ($x + $y); // 输出 16echo ($x - $y); // 输出 4echo ($x * $y); // 输出 60echo ($x / $y);
// 输出 1.6666666666667echo ($x % $y); // 输出 4?>
PHP 赋值运算符用于向变量写值。
PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。
赋值 |
等同于 |
描述 |
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=10;
echo $x; // 输出 10$y=20;
$y += 100;
echo $y; // 输出 120$z=50;
$z -= 25;
echo $z; // 输出 25$i=5;
$i *= 6;
echo $i; // 输出 30$j=10;
$j /= 5;
echo $j; // 输出 2$k=15;
$k %= 4;
echo $k; // 输出 3?>
运算符 |
名称 |
例子 |
结果 |
. |
串接 |
$txt1 = "Hello" $txt2 = $txt1 . " world!" |
现在 $txt2 包含 "Hello world!" |
.= |
串接赋值 |
$txt1 = "Hello" $txt1 .= " world!" |
现在 $txt1 包含 "Hello world!" |
下例展示了使用字符串运算符的结果:
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!?>
运算符 |
名称 |
描述 |
++$x |
前递增 |
$x 加一递增,然后返回 $x |
$x++ |
后递增 |
返回 $x,然后 $x 加一递增 |
--$x |
前递减 |
$x 减一递减,然后返回 $x |
$x-- |
后递减 |
返回 $x,然后 $x 减一递减 |
下例展示了使用不同递增/递减运算符的不同结果:
$x=10;
echo ++$x; // 输出 11$y=10;
echo $y++; // 输出 10$z=5;
echo --$z; // 输出 4$i=5;
echo $i--; // 输出 5?>
PHP 比较运算符用于比较两个值(数字或字符串):
运算符 |
名称 |
例子 |
结果 |
== |
等于 |
$x == $y |
如果 $x 等于 $y,则返回 true。 |
=== |
全等(完全相同) |
$x === $y |
如果 $x 等于 $y,且它们类型相同,则返回 true。 |
!= |
不等于 |
$x != $y |
如果 $x 不等于 $y,则返回 true。 |
<> |
不等于 |
$x <> $y |
如果 $x 不等于 $y,则返回 true。 |
!== |
不全等(完全不同) |
$x !== $y |
如果 $x 不等于 $y,且它们类型不相同,则返回 true。 |
> |
大于 |
$x > $y |
如果 $x 大于 $y,则返回 true。 |
< |
小于 |
$x < $y |
如果 $x 小于 $y,则返回 true。 |
>= |
大于或等于 |
$x >= $y |
如果 $x 大于或者等于 $y,则返回 true. |
<= |
小于或等于 |
$x <= $y |
如果 $x 小于或者等于 $y,则返回 true |
下例展示了使用某些比较运算符的不同结果:
$x=100;
$y="100";
var_dump($x == $y); // 因为值相等,返回 true
echo "
";
var_dump($x === $y); // 因为类型不相等,返回 false
echo "
";
var_dump($x != $y); // 因为值相等,返回 false
echo "
";
var_dump($x !== $y); // 因为值不相等,返回 true
echo "
";
$a=50;
$b=90;
var_dump($a > $b);
echo "
";
var_dump($a < $b);
?>
运算符 |
名称 |
例子 |
结果 |
and |
与 |
$x and $y |
如果 $x 和 $y 都为 true,则返回 true。 |
or |
或 |
$x or $y |
如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor |
异或 |
$x xor $y |
如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& |
与 |
$x && $y |
如果 $x 和 $y 都为 true,则返回 true。 |
|| |
或 |
$x || $y |
如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! |
非 |
!$x |
如果 $x 不为 true,则返回 true。 |
PHP 数组运算符用于比较数组:
运算符 |
名称 |
例子 |
结果 |
+ |
联合 |
$x + $y |
$x 和 $y 的联合(但不覆盖重复的键) |
== |
相等 |
$x == $y |
如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== |
全等 |
$x === $y |
如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= |
不相等 |
$x != $y |
如果 $x 不等于 $y,则返回 true。 |
<> |
不相等 |
$x <> $y |
如果 $x 不等于 $y,则返回 true。 |
!== |
不全等 |
$x !== $y |
如果 $x 与 $y 完全不同,则返回 true。 |
下例展示了使用不同数组运算符的不同结果:
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 与 $y 的联合
var_dump($z);
echo "
";
var_dump($x == $y);
echo "
";
var_dump($x === $y);
echo "
";
var_dump($x != $y);
echo "
";
var_dump($x <> $y);
echo "
";
var_dump($x !== $y);
?>
运行结果:
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 语句 - 如果指定条件为真,则执行代码
if...else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
if...elseif....else 语句 - 选择若干段代码块之一来执行
switch 语句 - 语句多个代码块之一来执行
if 语句用于在指定条件为 true 时执行代码。
if (条件) {
当条件为 true 时执行的代码;
}
下例将输出 "Have a good day!",如果当前时间 (HOUR) 小于 20:
$t=date("H");
if ($t<"20") {
echo "Have a good day!";
}
?>
请使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行另一段代码。
if (条件) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}
下例将输出 "Have a good day!",如果当前时间 (HOUR) 小于 20,否则输出 "Have a good night!":
$t=date("H");
if ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
请使用 if....elseif...else 语句来选择若干代码块之一来执行。
if (条件) {
条件为 true 时执行的代码;
} elseif (condition) {
条件为 true 时执行的代码;
} else {
条件为 false 时执行的代码;
}
下例将输出 "Have a good morning!",如果当前时间 (HOUR) 小于 10,如果当前时间小于 20,则输出 "Have a good day!"。否则将输出 "Have a good night!":
$t=date("H");
if ($t<"10") {
echo "Have a good morning!";
} elseif ($t<"20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>
switch 语句用于基于不同条件执行不同动作。
如果希望有选择地执行若干代码块之一,请使用 Switch 语句。
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。
switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
工作原理:
对表达式(通常是变量)进行一次计算
把表达式的值与结构中 case 的值进行比较
如果存在匹配,则执行与 case 关联的代码
代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
如果没有 case 为真,则使用 default 语句
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";
}
?>