PHP语法
- PHP脚本以 <?php 开始,以 ?> 结束
<?php
//php代码
?>
-
PHP文件的后缀名:.php
-
PHP文件包含HTML标签和PHP脚本代码,在服务器上执行。
-
PHP中的每个代码行都必须以分号结束。
-
PHP的输出格式:
print 输出内容;
echo 输出内容;
- echo 和 print的区别:
1.echo 一次可以输出一个或多个字符串,但没有返回值。
2. prin t一次只允许输出一个字符串,返回值总为 1。
- PHP 中的注释和C语言一样,分为单行注释和多行注释。
1.单行注释:注释内容只占一行。
2.多行注释:注释内容占多行。
// 这是 PHP 单行注释
/*
这是
PHP 多行
注释
*/
PHP变量
- PHP变量格式:
$变量名
-
变量民规则:
1.变量名只能包含字母、数字以及下划线。
2.变量名必须以字母或者下划线字符开始。
3.变量名是区分大小写的。 -
注意:
1.PHP 没有声明变量的命令。变量在第一次赋值时,被创建。
2.** 在PHP中,不需要声明变量的数据类型。PHP会根据变量的值,自动把变量转换为正确的数据类型。**
PHP 变量作用域
- 局部变量:在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。
- 全局变量:在所有函数外部定义的变量,就是全局变量。除了函数外,全局变量可以被脚本中的任何部分访问。要在一个函数中访问一个全局变量,需要使用 global 关键字。
- global 关键字:用于函数内访问全局变量。
- static关键字:当一个函数完成时,它的所有变量通常都会被删除。使用 static 关键字声明该局部变量,则函数完成后,该变量不会被删除。
PHP定界符
- PHP EOF用于定义一个字符串,以 <<<EOF 为开始标记开始,以 EOF; 为结束标记结束。
<<<EOF
// 字符串内容
EOF;
- 注意:
1.EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
2.结束标识,必须从行首开始独自占一行,前后不能衔接任何空白和字符。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以
<<<EOT
// 字符串内容
EOT;
PHP数据类型
- 字符串:用单引号或双引号括起来的一些字符。
- 整型:没有小数部分的数字,可以分为十进制、十六进制( 以 0x 为前缀)、八进制(前缀为 0 )
- 浮点型:浮点数是带小数部分的数字,或是指数形式。
- 布尔型:用于条件判断真假,只有两种取值true(真)和false(假)。
- 数组:可以在一个变量中存储多个值
- 对象:使用class关键字声明类对象,类中包含属性(变量)和方法(函数)。
class 类对象名{
//类对象体
}
- 注意:类对象中的变量定义
var $变量名;
PHP变量比较
- PHP对变量进行比较包含两种,松散比较和严格比较。
- 松散比较:使用两个等号 (==) 比较,只比较变量的值,不比较变量的类型。
- 严格比较:用三个等号 (===) 比较,比较变量的值和类型。
PHP常量
- PHP常量由英文字母、下划线、和数字组成。数字不能作为首字母出现,并且常量名不需要加 $ 修饰
- 常量值被定义后,便不能被修改。
- define()函数:
bool define ( string $name , mixed $value , bool $case_insensitive )
- ame:必选参数,表示常量名称。
- value:必选参数,表示常量的值。
- case_insensitive :可选参数,当为 true时,该常量不区分大小。当为 false时,该常量区分大小。默认是区分大小
- 常量在定义后,默认是全局变量,可以在任何地方使用。
PHP字符串操作
- 并置运算:并置运算符 (.) ,用于把两个字符串值连接起来。
字符串1 . 字符串2
- strlen(str) 函数:计算字符串str的长度,一个中文占 3 个字符数。
- strpos(str1,str2) 函数:在字符串str1中,查找比配str2。如果匹配成功,则返回第一个匹配的字符位置。如果匹配失败,则返回 false。
- 不是返回匹配到字符的下标,而是返回比配到字符数量
PHP运算
- 运算符:+(加)、-(减)、*(乘)、/(商,包含小数部分) 、%(取整)、~(按二进制位进行"取反"运算)
- intdiv(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
- a .= b:a = a . b ,连接两个字符串
PHP自增/自减运算
- ++变量名:变量先自加,然后变量再参与运算
- 变量名++:变量先参与运算,然后变量再自加
- – -变量名:变量先自减,然后变量再参与运算
- 变量名- -:变量先参与运算,然后变量再自减
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。
PHP 逻辑运算符
- 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条件语句
if 语句:
if(表达式)
{
语句组;
}
- 当表达式成立时,执行语句组
if…else 语句:
if(表达式)
{
语句组1;
}
else{
语句组2;
}
- 当表达式成立时,执行语句组1,否则执行语句组2
if…elseif…else 语句:
if (条件1) // 当条件1成立时,执行语句组1
{
语句组1;
}
elseif (条件2) // 当条件1不成立并且条件2成立时,执行语句组2
{
语句组2;
}
else // 当条件1和条件2都不成立时,执行语句组3
{
语句组3;
}
Switch语句:
switch(表达式){
case 常量1:
语句组1;
break;
case 常量2:
语句组2;
break;
.....
case 常量n:
语句组n;
break;
default:
语句组n+1;
}
-
执行过程:
1.首先计算switch括号中表达式的值。
2.将表达式的值和第一个case后面的“常量1”进行比较,如果相等,则执行语句组1。如果不相等,则跳过语句组1。
3.将表达式的值和第二个case后面的“常量2”进行比较,如果相等,则执行语句组2。如果不相等,则跳过语句组2。
4.依次向下比较,如果和某一个case后面的“常量”相等,则执行相应的语句组。
5.当所有case后面的常量都不相等时,则执行default下的语句语句组。 -
关键字default以及其后语句组可以缺省
-
如果在case后面的语句块中,没有break语句。匹配成功后,从当前case后面的语句块开始执行,后续所有case的语句组都会输出,直至遇到break或者“}”,跳出switch语句。
-
如果default没有放在最后,而是放在某一个case之前:
1.程序从default之后case后面的语句组执行时,无论有无break语
句,都不执行default后面的语句组;
2.程序从default之前case后面的语句组执行时,如果没有遇到
break语句,则执行default后面的语句组;
3.如果case后面的常量都不匹配,则执行default后面的语句组。
PHP数组
-
数组变量:能够在数组中存储多个数据,每个数据以键值对的形式出现,从而根据键访问对应值。
-
array()函数:用于创建数组。
-
PHP数组可以分为三种,数值数组、关联数组、多维数组。
-
数值数组:不需要指定键,键从 0 开始分配。
-
关联数组:数组元素以指定键值对形式出现,“键”=>“值”。
-
count(数组名) :返回数组长度,即数组元素个数。
PHP数组运算符
- +(集合):$arr3 = $arr1 + $arr2,数组arr1和数组arr2不变,数组arr3为arr1和arr2数组元素之和。某个元素的键名相同,则arr1中的键值对优先。
- ==(相等):$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。
PHP 数组排序函数
- sort() :对数字数组,按照ASCII比较序列,进行升序排列。
- rsort() :对数字数组,按照ASCII比较序列,进行降序排列。
- asort() :对关联数组,根据值,按照ASCII比较序列,对数组进行升序排列。
- ksort() :对关联数组,根据键,按照ASCII比较序列,对数组进行升序排列。
- arsort() :对关联数组,根据值,按照ASCII比较序列,对数组进行降序排列。
- krsort() : 对关联数组,根据键,按照ASCII比较序列,对数组进行降序排列。
PHP超级全局变量
- 超级全局变量,是PHP系统中自带的变量,在一个脚本的全部作用域中都可用,包括在函数及类中使用。
- $GLOBALS :包含了全部变量的全局组合数组,其中键变量名与值变量相同。
- $_SERVER :包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组,由 Web 服务器创建。
- $_REQUEST: 用于收集HTML表单提交的数据。
- $_POST :被广泛应用于收集表单数据
- $_GET: 同样被广泛应用于收集表单数据
PHP 循环
While 循环
while(表示式) // 当表达式为真时,执行循环体;当表达式为假时,退出while循环
{
循环体
}
do…while循环
do{
循环体
}while(表达式);
- do-while循环执行过程:
1.先执行一次循环体
2.计算表达式的值,若表达式的值为真,则再执行一次循环体;若表达式的值为假,则终止循环。 - 注意:do-while循环至少执行一次循环体语句,且while()后面要加;
for循环
for(表达式1;表达式2;表达式3)
{
循环体
}
-
for循环的执行过程:
1.执行表达式1
2.执行表达式2,若表达式的值为真,则执行第三步;若表达式的值为假,则终止循环。
3.执行循环体
4.执行表达式3 ,表达式3是循环体结束后再执行的
5.执行第二步 -
注意:
1.表达式1一般是赋值语句,用于给循环控制变量赋初值。
2.表达式2一般是真假判断,若为真,则执行循环体;若为假,则终止循环。
3.表达式3一般是循环控制变量的自增或者自减。
foreach 循环
- 语法1:
foreach ($array as $value) // 适用于数字数组
{
要执行代码;
}
- 循环过程:每进行一次循环,当前数组元素赋值给 $value 变量,数组指针自动下移一位。
- 语法2:
foreach ($array as $key => $value) // 适用于关联数组
{
要执行代码;
}
- 循环过程:每进行一次循环,当前数组元素键与值就会赋给 $key 和 $value 变量,数组指针自动下移一位。
PHP 函数
- 函数的定义:
function 函数名(形参列表)
{
函数体
}
- 如果函数有返回值,会使用 return 语句
return 表示式;
,返回表达式的值。
PHP 魔术常量
- 魔术常量的值随着在代码中的位置改变而改变
- __ LINE __:值是文件中的当前行号
- __ FILE __:表示编译文件的完整路径和文件名
- __ DIR __:表示文件所在的目录。
- __ FUNCTION __:用在函数中,表示该函数名字。
- __ CLASS __:用在类中,表示该类名字。
- __ METHOD __:用在方法中,表示该方法名字。
__ NAMESPACE __:表示前命名空间的名字。