先回顾一下之前学的WEB应用程序开发平台的几大部分:Linux,Apache,Mysql,Php

在这里插入图片描述

当浏览器向Web服务器发送请求时,Web服务器会接收到请求并且解析该请求。如果请求的资源是动态内容(如数据库查询、登录验证等)而不是简单的静态页面,则Web服务器将请求发送到PHP解释器。PHP解释器将解析请求并执行PHP代码,并将结果返回给Web服务器。Web服务器接收到从PHP解释器返回的结果后,将向浏览器发送响应,包括HTML、CSS、JavaScript以及其他内容(如图片、PDF、视频等)。浏览器接收到响应并处理它们,最终在浏览器中呈现出我们所看到的网页。

(一)PHP是什么语言

php是解释型语言,JS,Python,Shell也是解释性语言,即边执行边编译

(1)php的定界符

<?php 
echo "hello world!";
?>
//php语句用;来分割
//当在html中引入php变量时,执行的语句是<?=$uname?>

(2)php的输出语句

先回顾一下JS的输出语句

弹窗:alert 在控制台输出:console.log() 在网页上输出:document.write()

不同于JS,php的输出语句是:

echo 输出字符串
var_dump() 输出数组,包含数据类型和数据长度,最常用
print_r() 输出数组

举个例子:

<?php
$arr = [1,2,3,4,5];
var_dump($arr);
//输出结果是:
//array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } //5个数据,第0位是1,1的数据类型是int

print_r($arr);
//输出结果是:
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 

sql注入故障排除常用语句

$sql = select * from stu where math >= 60;
var_dump($sql);
die;//代码截断

(二)变量

(1)值传递,地址传递和变量销毁

//值传递
$a = 'color';
$b = 'sea';
$a = $b;
echo $a;//输出结果是:sea

//地址传递
$a = &$b;
echo $a;//跟$b语句返回的结果一样,a和b共享一个内存空间

//变量销毁
unset($b);
var_dump($a);//a打印的结果仍为sea

(三)数据类型

(1)数组

<?php
$arr = [1,2,3,4,5];//另一种写法是$arr = array(1,2,3,4,5);

//执行命令:
echo "<pre>";
print_r($arr);
echo "</pre>";//能够将数组竖着打印

//关联数组
$name  = '乔幽';
$age = '20';
$a = 1;
$arr = [$a,$a,'name'=>$name,$a,4=>$a,$a,'age'=>$age];
var_dump($arr);//数组下标规则

(2)字符串

//echo单引号与双引号区别
$name = 'April';
echo 'my name is $name';//$name的值没有打印出来
echo "my name is $name";//打印结果:my name is April

//多行语句打印
$id = 'student'; //$id 被赋值为字符串 'student'。
$age = '20'; //$age 被赋值为字符串 '20'。

 //<<<jmy 是 heredoc 的起始标记,jmy 是自定义的结束标记名称。字符串内容中直接嵌入变量 $id 和 $age,PHP 会自动解析这些变量值。
 
$LiHua = <<<jmy
my identify is $id;
my age is $age;
jmy;
echo $LiHua;

(四)运算符

(1)一元运算符

$a = 9;
echo $a++;//9
echo $a;//10,变量的值,先输出再自增
echo ++$a;//10,打印的值
echo $a;//10,先自增再打印

(2)二元运算符

  + - * / %

(3)关系运算符

$a = '10';
$b = 10;
if($a===$b){
    echo "true";
}else{
    echo "false";
}//===是强比较,要求比较的两个值不仅值相等,还必须类型相同。
//$a = '10' 是字符串类型(string)$b = 10 是整数类型(integer)
//虽然二者的值都是10,但类型不同,因此严格比较结果为false。

(4)三元运算符

$a = 10;
$b = '10';
echo ($a===$b?"1":"0");//0

$age = 17;
echo ($age >= 18 ? "您好" : "您好小朋友");

具体打印结果见phpstorm

(五)分支结构

跟c语言的分支结构是一样的

//判断平年闰年
$year = 2025;
if ($year%4==0&&$year%100!=0||$year%400==0){
    echo "<p>这一年是闰年</p>";
}else{
    echo "<p>'这一年是平年</p>";
}

(六)循环

(1)for循环

//打印nice
for($i = 0;$i < 10;$i ++){
    echo "nice";
    echo "<br>";
}//循环了十次

写循环结构是四个条件必须满足:初始值,条件,增量,循环体,缺失会报错或出现死循环

(2)while循环

//求1加到100的和
$sum = 0;
$i = 1;
while($i < 100){
    $sum += $i;
    $i ++;
}
echo $sum;

(3)foreach(数组遍历)

语法

foreach(数组名 as 数组下标=>数组值){

} foreach(数组名 as 数组值){

}

举例:

//数组遍历
<?php
$arr = ['kind'=>'dog','name'=>'lala','age'=>3,'charter'=>'fierce but clever'];
//php中使用.号进行字符串连接
foreach($arr as $key=>$value) echo $key.'=>'.$value.' ';
?>//运行结果是:kind=>dog name=>lala age=>3 charter=>fierce but clever 



//多维数组遍历
$arr = [
['name'=>'Jerry','age'=>18,'sex'=>'男'],
['name'=>'Tom','age'=>20,'sex'=>'女'],
['name'=>'Jack','age'=>25,'sex'=>'男']
];
foreach($arr as $a){
    foreach($a as $k=>$v){
        echo $k.'=>'.$v.'<br>';
    }
}

//只打印多维数组里每个数组的姓名
foreach($arr as $a){
    echo $a['name'].'<br>';
}

在PHP和HTML混合编码时,判断和循环语句有替换写法

if的替换语法: if(): elseif(): endif;

for的替代语法: for(): endfor;

while的替代语法: while(): endwhile;

foreach的替代语法: foreach(): endforeach;

(七)函数

(1)函数的传参

//求和函数
function sum($num1,$num2){
    return $num1+$num2;
}//函数体,包含函数名,形参

echo sum(10,20);//调用函数,括号里的是是实参,打印结果:30

更多推荐