PHP语言基础
2025-01-29
一.PHP介绍
1.什么是PHP
PHP是超文本预处理器。是运行在服务端的开源语言,它可以让Web开发人员快速的书写生成动态的页面。--->PHP是服务端语言(后端)语言
HTML+JS为前端语言:主要用来对页面的布局,动态美化
PHP,JAVA,Python为后端语言:用来实现业务逻辑功能,一般不做美化
2.PHP作用
(1)PHP可以生成动态页面
(2)PHP可以用来接收于发送Cookies值
(3)PHP可以用来接收前端的表单信息
(4)PHP可以修改,增加,删除数据库中的数据
(5)PHP可以创建,打开,读取,写入,关闭服务器上的文件
3.PHP文件
(1)PHP以“.php”文件后缀拓展名
(2)PHP可以包含文本,HTML,JS代码和PHP代码
(3)PHP代码在服务器上执行,结果以HTML纯数据形式返回给浏览器
4.静态网站与动态网站
静态网页的特点:
(1)静态网站的页面都是保存在服务器上的
(2)静态网站没有数据库的支持,交互性差,较大的限制了在功能上的使用
(3)静态网站相对平稳,比较容易在搜索引擎中发现
动态页面的特点:
(1)网页会根据用户的要求与选择而动态的改变与响应
(2)无需手动更新HTML文档,便会自动生成页面内容,可以大量减少工作量
(3)当不同事件,不同用户访问同一网站时,会生成不同的页面
二.PHP基本语法
1.PHP基本语法
PHP脚本可以放在文档的任意位置--><?php 代码?>
PHP语句以分号结尾;PHP代码的关闭标签也会自动代表分号
2.注释/结束符
单行注释:/;# 多行注释:/*..............*/
结束符:分号(;)
3.输出语句
echo:输出
print:输出内容,输出成功后打印1
print_r:输出数组,打印变量
var_dump:输出数据的详细信息,带有数据类型,数据长度
三.PHP变量与常量
1.变量介绍
// 变量就是用来存放数据的容器
PHP变量是指在程序执行过程中数值可以变化的量,变量通过一个名字(变量名)来标识。系统为程序中的每一个变量分配一个存储单元,变量名实质上就是计算机存储单元的命名,因此可借助变量名访问内存中的数据。
(1)变量可以改变的
(2)变量是存储信息的容器
(3)变量是通过名字来访问其中的数据的
2.变量命名
(1)变量必须以 $ 开头, $ 符不是变量的⼀部分,仅表⽰后⾯的标识符是变量名。
(2)除了 $ 以外,变量名必须以字⺟、下划线开头,后⾯跟着数字、字⺟、下划线
(3)变量名区分⼤⼩写, $aa 与 $Aa 为两个变量。
3.变量传递
删除变量:unset() 来删除变量,销毁的是变量名,变量值由PHP垃圾回收机制销毁。
检查变量: isset() 用来检查变量是否被设置并且是否为空。
4.常量介绍
将一个变量赋值给另一个变量称之为变量传递
变量传递一共有两种方式: 值传递 与 引用传递(地址传递)
值传递:将变量保存的值赋值⼀份然后将新的值给另⼀个变量存储保存,两个变量使⽤各⾃的内存,互不⼲扰。
引⽤传递:将变量保存的值所在的内存地址,传递给另⼀个变量存储,两个变量指向同⼀块内存空间。
传值:将一个表达式的值赋予另一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。
传址:引用赋值,指新的变量简单的引用了原始变量,改变新的变量将影响到原始变量,反之亦然。
5.定义常量
PHP常量可以理解为值不变的量,常量被定义后,在脚本的其他任何地方都不能改变。
使用定义常量函数: define(常量名,值,[是否区分大小写]) True代表不区分大小写,默认是False区分大小写。
define('NAME','Jion'); //定义常量
define('PI',3.1415926,true); //定义常量不区分大小写。
echo NAME,'<br>',PI;
PHP5.3以后可以使用 const定义常量:const 常量名='常量值';
const NAME='TOM';
echo NAME;
6.预定义常量
常量: 不可能变化的量
define("常量名字","值")
//预定义常量
echo PHP_VERSION,'<br>'; //PHP版本号
echo PHP_OS,'<br>'; //PHP操作系统
echo PHP_INT_MAX,'<br>'; //PHP中整型的最大值
//魔术常量
echo __LINE__,'<br>'; //获取当前行号
echo __FILE__,'<br>'; //文件的完整路径和文件名
echo __DIR__,'<br>'; //文件所在的目录
四.PHP数据类型
1.整数型
概念:整数是没有小数的数字。 范围-2147483648~+214786347
整数规则:
整数必须有⾄少⼀个数字(0-9)
整数不能包含逗号或空格
整数不能有⼩数点
整数正负均可 1 -1
可以⽤三种格式规定整数:⼗进制、⼗六进制(前缀是 0x)或⼋进制(前缀是 0)
$num1=10; //十进制
$num2=010; //八进制(数字前面加0)
$num3=0x10; //十六进制(数字前面加0x)
echo $num1,'<br>'; //10
echo $num2,'<br>'; //8
echo $num3; //16
2.浮点型
概念:浮点数是有小数点或指数形式的数字。
$num1 = 10.111;
$num1 = 1.23e10; //科学计数法,其中e表示小数点后面10位
3.布尔型
概念:布尔类型只有两个值 true 或 false 。常用于条件测试。
0 代表假
1 代表真
4.字符串型
概念:字符串是连续的字符序列如: 'hello,world' ,由数字、字母、符号组成。
在PHP中,有三种定义字符串的方式,分别是 ' ' 、 " " """单引号或双引号。
三引号得使用:PHP 三引号语法在 PHP 7.3 版本中引入,并且在 PHP 8.0 中已经稳定。因此,如果你希望使用PHP 三引号,你的 PHP 版本至少应该是 7.3 或更高版本。
$name = 'tom';
$name = "jion";
$name = 'jion';
echo '我得名字叫$name'; //我得名字叫$name
echo "我的名字叫$name"; //我的名字叫jion
//{}取变量
$name = 'tom';
echo "{$name}是我得名字"; //{}表示获取变量的值(tom是我的名字)
echo "${name}是我得名字"; //$和{只要挨着一起就可以(tom是我的名字)
//输出特殊字符
echo '毛主席说:\'上课不要睡觉\''; //转义字符 毛主席说:'上课不要睡觉'
//(点号).拼接
五.PHP运算符
概念:运算符是用来对变量、常量或数据进行计算的符号,它对一个值或一组值执行一个指定得操作,PHP运算符主要包括:算数运算符、字符串运算符、赋值运算符、位运算符、逻辑运算符、比较运算符、递增或递减运算符、条件运算符。
1.算术运算符
名称 | 操作符 | 举例 |
加法运算 | + | $a+$b |
减法运算 | - | $a-$b |
乘法运算 | * | $a*$b |
除法运算 | / | $a/$b |
取余运算 | % | $a%$b |
2.递增递减运算符(++/--)
一种是将运算符放在变量前面,即先将变量做加 1 或减 1 的运算后再将值赋给原变量,叫做前置递增或者递减运算符。
一种是将运算符放在变量后面,即先返回变量的当前值,然后变量的当前值作加 1 或减 1的运算,叫做后置递增或递减运算符。
//++
<?php
echo "<h3>第一次</h3>";
$a = 5;
echo "首先是:".$a++."<br>\n";
echo "首先是:".$a."<br>\n";
?>
<?php
echo "<h3>第一次</h3>";
$a = 5;
echo "首先是:".++$a."<br>\n";
echo "首先是:".$a."<br>\n";
?>
3.逻辑运算符
运算符 | 举例 | 结果为真 |
&&或and(逻辑与) | $m and $n | 当$m与$n都为真时为真 |
|| 或 or | $m or $n | 当一方为真即为真 |
!(逻辑非)
|
!$m
|
当$m 为假时
|
xor(逻辑或与)
|
$m xor $n
|
当$m 和 $n 一真一假时,返回true
|
4.比较运算符
概念:比较运算:比较两个数据的大小,或者两个内容是否相同,返回的结果都是布尔类型:满足返回true,不满足返回false。
运算符 | 说明 | 举例 |
< |
小于(左边小于右边,返回结果true)
|
$m < $n
|
> |
大于(左边大于右边,返回结果true)
|
$m > $n
|
<= |
小于等于(左边小于或者等于右边,返回结果true)
|
$m <= $n
|
>= |
大于等于(左边大于或者等于右边,返回结果true)
|
$m >= $n
|
== |
等于(左边的与右边的相同(大小相同))
|
$m == $n
|
!= |
左边的与右边的不同(大小不同)
|
$m != $n
|
=== |
全等于,左边与右边相同:(大小以及数据的类型都要相
同)
|
$m === $n
|
!== |
不全等于,只有大小或者类型不同
|
$m !== $n
|
5.错误抑制符
在 PHP 中明知有些错误会报错,但不想让他报错,就用到了错误抑制符(@)
$a = 10;
$b = 0;
echo @($a/$b);
Warning : 警告 如果程序运行结果提示warning不是报错,程序没有出错,只是给你一个提示
Parse error: 语法报错
六.PHP控制语句
1.条件控制
概念:条件语句用于根据不同条件执行不同动作。
当编写代码时,常常需要为不同的判断执行不同的动作。·可以在代码中使用条件语句来完成此任务。
在 PHP 中,提供了下列条件语句:
if 语句 - 在条件成⽴时执⾏代码
if...else 语句 - 在条件成⽴时执⾏⼀块代码,条件不成⽴时执⾏另⼀块代码
if...elseif....else 语句 - 在若⼲条件之⼀成⽴时执⾏⼀个代码块
switch 语句 - 在若⼲条件之⼀成⽴时执⾏⼀个代码块
IF语句
if (条件)
{
条件成立时要执行的代码;
}
$name = '小明';
if($name == '小明'){
echo "你好我叫${name}";
}
if...else语句
if(条件){
条件成立代码;
}else{
条件不成立代码;
}
$num = rand(1,10); //rand()函数是生成随机数
if ($num % 2 == 0){
echo '$num 为偶数';
}
else{
echo '$num 为奇数';
}
if...elseif...else语句
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
header("Content-Type:text/html;charset=utf-8");
$num = rand(1,10);
if ($num % 2 == 0){
echo "$num 为偶数";
}elseif($num % 2 !== 0){
echo "$num 为奇数";
}else{
echo '数据错误';
}
Switch
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
2.循环控制
概念:代码段在一定的控制下,可以多次执行(重复执行多次)
循环结构分类:
For循环:通过条件、起始和终⽌判断执⾏
While循环:通过判断条件终⽌
Do-while循环:跟while差不多
Foreach循环:专⻔针对数组
for循环
for(初始值;条件;增量;){
#执行代码块
}
初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
for($i=1;$i<=10;$i+=2){
echo $i;
}
死循环
for($i=1;$i<=10;){
echo “$i”;
}
//死循环,$i永远等于1,1永远小于10,条件永远为true
//只要没有条件都是死循环
for($i=1; ;$i++){
echo "$i".'<br>';
}
for(;;;){
echo "i";
}
While循环
while(条件){
代码块;
}
xxxx
//实现10以内的偶数的输出。1~10依次判断是否为偶数,如果是,则输出;如果不是则继续判断
$i = 1;
while($i <= 10){
if ($i %2 == 0){
echo $i;
}
$i++;
}y
do...while
do{
#要执行的代码
}
while(条件);
//实现10以内的偶数的输出。1~10依次判断是否为偶数,如果是,则输出;如果不是则继续判断
$i = 1;
do{
if ($i %2 == 0){
echo $i;
}
$i++;
}while ($i <= 10);
3.跳转语句
Break Break 关键字可以终止当前的循环,包括while、do...while、for、foreach和switch 在内的所有控制语句
for($i=1; $i<=10; $i++) {
if($i==5)
break; //中断循环
echo $i;
}
Continue
continue 关键字没有 break 强大,它只能终止本次循环而进入到下次循环中
如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错
for($i=1; $i<=10; $i++) {
if($i==5)
continue; //跳出5,进入6循环
echo $i;
}
七.PHP数组
1.数组类型
数值数组 - 带有数字 ID 键的数组(索引)
关联数组 - 带有指定的键的数组,每个键关联⼀个值(键)
多维数组 - 包含⼀个或多个数组的数组(都⾏)
2.索引数组
$stu = ['tom','berry','ketty'];
print_r($stu); //输出数组 Array ( [0] => tom [1] => berry [2] => ketty )
echo '<hr>';
echo $stu[0],'<br>'; //tom
echo $stu[1],'<br>'; //berry
echo $stu[2],'<hr>'; //ketty
具体操作
//获取数组⻓度count() 函数⽤于返回数组的⻓度(元素数):
$cars=array("porsche","BMW","Volvo");
echo count($cars);
//判断是否是数组―is_array()函数:Is_array() 函数⽤于判断是否是数组:
$cars=array("porsche","BMW","Volvo");
echo is_array($cars);
//遍历索引数组如需遍历并输出索引数组的所有值,可以使⽤ for 循环,就像这样:
$cars=array("porsche","BMW","Volvo");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "<br>";
}
3.关联数组
关联数组是使用你分配给数组的指定键的数组
//Array(键1=>值1, 键2=>值2, 键3=>值3)
//=> 是数组成员访问符号
$emp=array('name'=>'李白','sex'=>'男','age'=>22);
print_r($emp); //Array ( [name] => 李白 [sex] => 男 [age] => 22 )
echo '<hr>';
echo $emp['name'],'<br>'; //李白
echo $emp['sex'],'<br>'; //男
echo $emp['age']; //22
4.foreach循环
//语法
Foreach($数组变量 as $值){
//通过$下标访问元素的下标;通过$值访问元素的值
}
//索引数组遍历
$arr = ['1','2','3','4'];
foreach($arr as $value){
echo $value;
}
//索引数组遍历
$cars=array("porsche","BWM",'Volvo');
foreach($cars as $value){
echo $value."<br>";
}
//关联数组遍历
Foreach($arr as $key => $value){
#代码块
}
//关联数组遍历
$age=array("bom"=>"63","dom"=>"34","tom"=>"12");
foreach($age as $x=>$zxc){
echo "key".$x.", Value=".$zxc;
echo "<br>";
}
5.数组操作
//数组的合并 array_merge(数组1,数组2)
$array1 =array('a','b','c');
$array2 = array('a1'=>'php','a2'=>'python','a3'=>'java');
$array3 = array_merge($array1,$array2);
print_r("<pre>");
print_r($array3);
//添加元素 array_push(数组变量,元素1,元素2.,...)函数向第一个参数的数组尾部添加一个或多个元素。
$array1 = array('a','b','c');
array_push($array1,'d','e');
print_r($array1);
//删除元素 array_splice(数组,索引位,删除数量)
$array1 = array('a', 'b', 'c', 'd', 'e');
array_splice($array1, 3, 1);
print_r($array1);
//unset 销毁指定的元素。
$array1 = array('a', 'b', 'c', 'd', 'e');
unset($array1[0]);
print_r($array1);
6.常见数组函数
is_array() |
判断是否为数组
|
count() |
数组的元素数量
|
array_seach('查找字符串',
查找数组)
|
在数组种搜索指定的值,成功后返回对应的键
值
|
array_key_exists |
在给定的key存在于数组中时返回True
|
array_unshift |
将传入的数据插入到数组开头。
|
array_shift() |
将array 的第一个单元移出并作为结果返回
|
array_unique |
接受 array 作为输入并返回没有重复值的新数
组。注意键名保留不变。
|
in_array()
|
检查数组中是否存在某个值 如果找到指定的值
则返回 TRUE,否则返回 FALSE
|
函数 | 解释 |
7.数组结构
PHP数组结构分为两种:一维数组、二维数组
//二维数组
$arr = array(array($value1, $value2, $value3), array($value1, array(1,2,3), $value3));
//PS: 二维数组是数组的数组(三维数组是数组的数组的数组)。
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
八.PHP函数
1.函数介绍
while True:
if cpu利用率 > 90%:
aa()
if 硬盘使用空间 > 90%:
aa()
if 内存占用 > 80%:
aa()
function aa(){
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
}
//假如现在让你编写给定的10组不同数字相加判断,那么使用我们上面的方法编写就是
$number = 5;
$number2 = 3;
if($number+$number2 < 10){
echo "小于10";
}else{
echo "大于10";
}
//如果要编写10组的话,那么就要重复编写许多代码。这样的话效率是非常低的,所以我们可以将重复使用的代码编写成为函数,在使用的时候调用即可。
function num($number,$number2){
$number_all = $number+$number2;
if($number_all < 10){
echo "小于10";
}else{
echo "大于10";
}
}
num(1,1);
num(1,22);
PHP拥有超过1000个内置的函数
PHP用户自定义函数:
除了内置的PHP函数,我们可以创建属于我们自己的函数。
函数是可以在程序中重复使用的语句块。
页面加载时函数不会执行、函数只有在被调用时才会执行。
2.创建函数
function:为声明定义函数的关键词。
函数名:为⾃定义的函数的名称。
参数:为⾃定义的参数的名称。
函数体:为⾃定义函数的主体,是功能实现的部分。
3.调用函数
当函数被定义好后,所要做的就是调用这个函数,调用函数操作十分简单,只需要引用函数名称并赋予正确的参数即可完成函数的调用。
函数调用方式: 函数名(参数1,参数2)
#定义一个 example函数名的函数,计算传入值的平方,然后连同表达式和结果全部输出。
function example($num){
echo $num*$num;
}
example(4); #函数调用
4.传递参数
概念:当调用函数时,需要函数传递参数,被传入的参数称之为 实参 而函数定义的参数为 形参 。
传递参数的方式:
按值传递
按引⽤传递
(1)按值传递
将实参的值复制到对应的形参中,在函数体内部针对形参进⾏操作,操作结果不会影响到实参,即函数返回后,实参值不变。
$number = 10;
function fun($num1) {
echo $num1 = $num1+5;
}
fun($number); //15
echo $number; //10
(2)按引⽤传递
将实参的值复制到对应的形参中,在函数体内部针对形参进⾏操作,操作结果会影响到实参。
function test(&$str){
$str = 'b';
}
$str = 'a';
test($str);
echo $str;
(3)默认参数
还⽤⼀种设置参数的⽅式,及可选参数。可以指定某个参数为可选参数,将可选参数放在参数的末尾,并给他⼀个默认值
//参数的默认值
function fun($name,$add='地址不详') {
echo '姓名:'.$name,'<br>';
echo '地址:'.$add,'<hr>';
}
//测试
fun('tom','北京');
fun('berry');
5.函数返回值
如需让函数返回一个值,请使用 return 语句。如果在函数内遇到return那么将终止函数内执行。
function add($x,$y)
];
$total=$x+$y;
return $total;
}
echo(add(1,16));