1、PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。
2、基础 PHP 语法
1)PHP 脚本可放置于文档中的任何位置。
2)PHP 脚本以 <?php 开头,以 ?> 结尾。
3)PHP 文件的默认文件扩展名是 ".php"。
4)PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
5)PHP 支持三种注释:
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
6)PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
3、PHP 大小写敏感
1)在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
2)所有变量都对大小写敏感。
3)常量可定义为大小写敏感或者不敏感:
define("常量名","常量值","false/true");//默认为false代表队大小写不敏感,true代表大小写敏感。
4、PHP数据类型
PHP有数据类型,不过定义变量时不需要声明数据类型
字符串:是字符序列,比如 "Hello world!"。字符串可以是引号内的任何文本,可以使用单引号或双引号。
整数:整数是没有小数的数字。
整数规则:
- 整数必须有至少一个数字(0-9)
- 整数不能包含逗号或空格
- 整数不能有小数点
- 整数正负均可
- 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
eg:
<?php
$x = 5985;
var_dump($x);//返回变量的数据类型和值
$x = -345; // 负数
var_dump($x);
$x = 0x8C; // 十六进制数
var_dump($x);
$x = 047; // 八进制数
var_dump($x);
?>
运行结果:int(5985)int(-345)int(140)int(39)
浮点数:浮点数是有小数点或指数形式的数字。
eg:
<?php
$x = 10.365;
var_dump($x);
$x = 2.4e3;//覆盖了之前$x的值
var_dump($x);
$x = 8E-5;
var_dump($x);
?>
运行结果:float(10.365)float(2400)float(8.0E-5)
逻辑:true 或 false。
数组:数组在一个变量中存储多个值。
对象:对象是存储数据和有关如何处理数据的信息的数据类型。(类的实例)
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
类的声明:
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
function print_vars($obj) {
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
$herbie = new Car("white");// 实例化一个类,$herbie即是一个对象
echo "\herbie: Properties\n";
print_vars($herbie);//调用print_vars方法输出相应值
运行结果:\herbie: Properties color = white
NULL:特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:
5、变量
1)PHP 变量规则:
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
注释:PHP 变量名称对大小写敏感!
2)PHP 没有创建变量的命令。变量会在首次为其赋值时被创建。eg:$y=5;
3)PHP 是一门类型松散的语言,我们不必告知 PHP 变量的数据类型。PHP 根据它的值,自动把变量转换为正确的数据类型。
4)PHP 变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
- local(局部):函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
- global(全局):函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
- static(静态)
注释:可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。
6)PHP global 关键词
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;//因为用了global关键字,代表访问的是全局变量$x,$y
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];//所有的全局变量都存储在$GLOBALS['全局变量名']的数组内
}
myTest();
echo $y; // 输出 15
?>
7)PHP static 关键词
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词。
每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
注释:该变量仍然是函数的局部变量。
6、常量
常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
注释:与变量不同,常量贯穿整个脚本是自动全局的。
7、两种基本的输出方法:echo 和 print。
echo 和 print 之间的差异:
- echo - 能够输出一个以上的字符串
- print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
eg:
<?php
$txt1="Learn PHP";
$cars=array("Volvo","BMW","SAAB");
echo "<h2>PHP is fun!</h2>";//输出字符串,可以包含html
echo "Hello world!<br>";//输出一个字符串
echo "This", " string", " was", " made", " with multiple parameters.";//可以输出多个字符串
echo $txt1;//输出变量
echo "My car is a {$cars[0]}";
print "I'm about to learn PHP!";
print $txt1;
print "My car is a {$cars[0]}";
?>
8、运算符
1)PHP 算数运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)
2)PHP赋值运算符:=、+=、-=、*=、/=、%=
3)PHP 字符串运算符:.(串接,$txt1 = "Hello" $txt2 = $txt1 . " world!" )、.=(串接赋值,$txt2 = "Hello" $txt2 . =" world!")。两个$txt2=="Hello world!”
4)PHP 递增/递减运算符:++$x、$x++、--$x、$x--
5)PHP 比较运算符:==(等于)、===(全等于(完全相同),如果被比较的双方相等,且它们类型相同,返回 true)、!=、<>、!==(不全等(完全不同))、>、<、>=、<=
6)PHP 逻辑运算符:and、or、xor、&&、||、!
7)PHP 数组运算符:+、==、===、!=、<>、!==
eg:
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 与 $y 的联合
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
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)