2023.10.14
基础语法
1、标记
标记:由于PHP 是嵌入式脚本语言,它在实际开发中经常会与HTML内容混编在一起,所以为了区分HTML与PHP代码,需要使用标记对PHP代码进行标识
当解析一个文件时,PHP会寻找起始和结束标记,也就是告诉PHP开始和停止解析二者之间的代码。此种解析方式使得PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被PHP解析器忽略
标记类型 | 开始标记 | 结束标记 | 开启项 |
---|---|---|---|
标准标记 | <?php | ?> | 无 |
短标记 | <? | ?> | short_open_tag |
ASP式标记 | <% | %> | asp_tags |
Script标记 | <script language="php"> | </script> | 无 |
2、输出语句
Ps:所有语句必须以 ; 结尾
语句 | 用法 |
---|---|
echo | 可将紧跟其后的一个或多个字符串、表达式、变量和常量的值输出到页面中,多个数据之间使用 , 分隔 |
与echo的用法相同,唯一的区别是print只能输出一个值 | |
print_r() | PHP的内置函数,它可输出任意类型的数据,如字符串、数组等 |
var_dump() | 不仅可以打印一个或多个任意类型的数据,还可以获取数据的类型和元素个数 |
3、注释
分类 | 风格 | 示例 |
单行注释 | // | // 注释一句话 |
# | # 注释一句话 | |
多行注释 | /*……*/ | /* 注释一句话; 注释两句话; */ |
数据与运算
1、常量
命名规则:遵循标识符的命名规则,默认大小写敏感,习惯上常量名称总是使用大写字母表示
定义方式 | 解释 | 示例 |
define(name,value,[true /fase]) | 第一个参数:定义常量的名称 第二个参数:定义常量的值 可选的第三个参数:规定常量名是否对大小写敏感,默认是 false。高版本已弃用 | define('PAI', 3.14,true); |
const | 无 | const PAI = 3.14 |
1.1预定义常量
这些常量专门用于获取PHP中的信息,并且不允许开发人员随意修改
常量名 | 功能描述 |
__FILE__ | PHP程序文件名 |
__LINE__ | PHP程序中的当前行号 |
PHP_VERSION | PHP程序的版本,如“7.1.4” |
PHP_OS | 执行PHP解析器的操作系统名称,如“WINNT” |
TRUE | 该常量是一个真值(true) |
FALSE | 该常量是一个假值(false) |
NULL | 该常量是一个空值(null) |
E_ERROR | 该常量表示错误级别为致命错误 |
E_WARNING | 该常量表示错误级别为警告 |
E_PARSE | 该常量表示错误级别为语法解析错误 |
E_NOTICE | 该常量表示错误级别为通知提醒 |
2. 变量*
2.1、命名
组成:在PHP中,变量是由$符号和变量名组成的
如:$number、$_it为合法的变量名,而$123、$*math为非法变量名
2.2、变量的赋值
由于PHP是一种弱语言,变量不需要事先声明,就可以直接进行赋值使用。
传值赋值:变量默认总是传值赋值,将“=”右边的数据赋值为左边的变量
引用赋值:所谓引用赋值就是在要赋值的变量前添加 “&” 符号
示例:
$a = 1
$b = &$a
Ps:引用赋值是不会给b分配空间的,a、b是共用一个空间
2.3、超全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
$GLOBALS | $_SERVER | $_ENV |
$_POST | $_REQUEST | $_COOKIE |
$_GET | $_FILES | $_SESSION |
2.4、数据类型
标量数据类型 | boolean | 布尔型 |
integer | 整形 | |
float | 浮点型 | |
string | 字符串型 | |
复合数据类型 | array | 数组 |
object | 对象 | |
特殊数据类型 | resource | 资源 |
NULL | 空值 |
2.5、引号
双引号里面可以解析变量
单引号输出字符串
示例:
<?php
$test='php';
$str1='I like $test';
$str2="I like $test";
echo $str1;
echo '\n';
echo $str2;
?>
2.6、数据类型检测
gettype() | |
is_*() | |
2.7、数据类型转换
① 自动类型转换:
指的是当运算需要或与期望的结果类型不匹配时,PHP将自动进行类型转换,无需开发人员做任何操作
转换类型 | 示例 | 输出结果 |
---|---|---|
转换成布尔型 | var_dump( 0 == false ); | bool(true) |
转换成整型 | var_dump( '888php' == 888 ); | bool(true) |
var_dump( true + 1 ); | int(2) | |
转换成字符串型 | var_dump( 'true is' . true ); | string(8) "true is1 |
② 强制类型转换:
就是在编写程序时手动转换数据类型,在要转换的数据或变量之前加上“(目标类型)”即可
示例 | var_dump((int) "4.99"); | int(4) |
3、运算符
+ | 加 | ++ | 自增 |
- | 减 | -- | 自减 |
* | 乘 | ** | 幂 |
/ | 除 | % | 取余 |
. | 链接 | = | 赋值 |
+= | 加赋值 | -= | 减赋值 |
*= | 乘赋值 | **= | 幂赋值 |
/= | 除赋值 | %= | 取余赋值 |
.= | 链接赋值 | ||
== | 等于 | === | 全等 |
!= | 不等于 | <> | 不等于 |
!== | 全不等 | <= | 小于等于 |
< | 小于 | >= | 大于等于 |
> | 大于 | ||
&& | 与 | and | 与 |
or | 或 | || | 或 |
! | 非 | xor | 异或 |
& | 按位与 | | | 按位或 |
~ | 按位非 | ^ | 按位异或 |
<< | 左移 | >> | 右移 |
@ | 忽略错误 | ?: | 三目运算符 |
4、流程控制语句
4.1、if...elseif...else
<?php
if(条件1)
{ 代码段1 }
elseif(条件2)
{ 代码段2 }
else
{ 代码段3 }
?>
Ps:执行语句为单行是可不加 { }
4.2、switch语句
Ps:表达式的值不能为数组或对象
switch (表达式)
{
case 值1:代码段1; break;
case 值2:代码段2; break;
default: 代码段n;
}
4.3、while循环语句
while ( 循环条件 )
{
循环体
}
4.4、do…while循环语句
do
{
循环体
}
while (循环条件);
4.5、for循环语句
for (初始值; 条件; 增量)
{
代码段;
}
4.6、跳转语句
break | 用于终止当前循环,跳出循环体 |
continue | 结束本次循环的执行,开始下一轮循环的执行操作 |
4.7、流程替代语法
大量的HTML与PHP代码混合编写时,为了方便区分流程语句的开始和结束位置,可以使用PHP提供的替代语法进行编码。
替换成 | |
{ | : |
} | endif; endwhile; endfor; endforeach; endswitch; |
示例
<!-- 输出1~99之间的偶数 -->
<ul>
<?php for ($i = 1; $i < 100;++$i): ?>
<?php if ($i % 2 == 0): ?>
<li><?=$i?></li>
<?php endif; ?>
<?php endfor; ?>
</ul>
5、文件包含语句
作用:在程序开发中,会涉及到多个PHP文件。为此,PHP提供了包含语句,可以从另一个文件中将代码包含进来
好处:不仅可以提高代码的重用性,还可以提高代码的维护和更新的效率
include | include_once |
require | require_once |
require语句与include语句,以及include_once、require_once语句的区别。
① 在包含文件时,如果没有找到文件,include语句会发生警告信息,程序继续运行;而require语句会发生致命错误,程序停止运行。
② 虽然include_once、require_once语句,和include、require的作用几乎相同,但是不同的是带“_once”的语句会先检查要包含的文件是否已经被包含过,避免了同一文件被重复包含的情况。
在被包含文件中,还可以使用return关键字返回一个值