PHP的程序运行顺序

PHP基础语法
以<?php ...?>为结构框架 …处填写代码 用;结束语句 echo多次输出 print单词输出 注释// 多行注释 /* …*/
变量
1.以$开头 2.中间不能有空格 3.不能以数字开头 常用的命名法:hello_world、HelloWord、
实战
1.HTML与PHP文件的混编,可以在php文件下改代码,网页显示,但是如果在HTML的文件下改PHP代码,则网页不显示更改内容。 2.代码由上到下执行。 3.变量的命名要唯一,如果两条变量相同挨在一起,则下一条变量名会将上一条变量覆盖。
PHP标量类型
 echo 输出数据的值 var_dump 打印数据的类型和值,测试时使用 。
1.布尔型
通常用于条件的判断
<?php
$x = true;
var_dump($x);
echo '<hr>';
$y = flase;
var_dump($y);
?>

2.整型
- 不能包含空格
- 没有小数点
- 可以为正也可以为负
- 可以用三种格式来指定:十进制、十六进制、八进制。
<?php
$number = 0;
var_dump($number);
echo '<hr>'
$number = 67;
var_dump($number);
echo '<hr>';
$number = -322;
var_dump($number);
?>

3.浮点型
<?php
$number = 10.03;
var_dump($number);
echo '<hr>';
$number = 69.3223;
var_dump($number);
echo '<hr>';
$number = -32.099;
var_dump($number);
?>

4.字符串
- 引号内的数据
- 可以是单引号也可以时双引号
- 字符串不用引号是会报错的
- 所有的标量类型加引号都属于字符串
关于解决PHP中文输入乱码: 只需要在php文件头部加一个:
<?php
header('Content-Type: text/html; charset=utf-8');
?>
测试:
<?php
header('Content-Type: text/html; charset=utf-8');
$str = '我是小明';
var_dump($str);
echo '<hr>';
$str = 'my name is tom';
var_dump($str);
?>
 如果去掉引号的话,则会报错。 单引号与双引号的区别: 双引号里放变量会把变量的值输出。 单引号则会直接把$变量输出
<?php
header('Content-Type: text/html; charset=utf-8');
$str = '我是小明';
var_dump($str);
echo '<hr>';
$str = "$str my name is tom";
var_dump($str);
echo '<hr>';
$str = '$str my name is tom';
var_dump($str);
?>

php复合数据类型

<1>.数组类型
1.创建空数组:
<?php
$arr = array();
var_dump($arr);
$arrs = [];
var_dump($arrs);
?>
数组都是由键和值组成的,默认情况下,键是从0开始的,但也可以自定义,定义之后,从定义的下一个的键值为0开始索引。类似于python中的dict.
<?php
$arr = array(
'hello',
'where' => 'where',
'how are you'
);
echo $arr[0];
echo '<hr>';
echo $arr['where'];
?>
 2.将数组中的所有数据输出。
<?php
$arr = array(
'hello',
'where' => 'where',
'how are you'
);
print_r($arr);
?>
3.连接符
echo '我来自'.$arr['where'];
<2>多维数组
1.二维数组
<?php
header('Content-Type: text/html; charset=utf-8');
$arr = array(
array(
'西瓜'
),
array(
'桃子',
'榴莲'
),
array(
'葡萄',
'苹果'
)
);
echo $arr;
echo '<hr>';
print_r($arr);
?>
 2.三维数组   三维数组的索引:
echo '我的名字是:'.$arr[0]['name'].',我的学校是'.$arr[0]['school'];
echo '我会:'.$arr[0]['gongfu'][0].',还会'.$arr[0]['gongfu'][1];
<3>数组的循环
1.一维数组的循环
<?php
header('Content-Type: text/html; charset=utf-8');
$arr = array(
'xiagua' => '西瓜',
'taozi' => '桃子',
'liulian' => '榴莲',
'putao' => '葡萄',
'pingguo' => '苹果'
);
print_r($arr);
echo '<hr>';
$num = 0;
foreach ($arr as $k => $v) {
echo $k.$v;
echo '<hr>';
}
?>

2.多维数组的循环 循环的原理:
<?php
header('Content-Type: text/html; charset=utf-8');
$arr = array(
array(
'西瓜',
'山竹'
),
array(
'桃子',
'榴莲'
),
array(
'葡萄',
'苹果'
)
);
foreach ($arr as $k => $v) {
echo $v[0].$v[1];
echo '<hr>';
}
?>

<?php
header('Content-Type: text/html; charset=utf-8');
$arr = array(
array(
'西瓜',
'山竹'
),
array(
'桃子',
'榴莲'
),
array(
'葡萄',
'苹果'
)
);
foreach ($arr as $k => $v) {
foreach ($v as $vv) {
echo $vv;
echo '<hr>';
}
}
?>
 3.三维数组的循环
<?php
header('Content-Type: text/html; charset=utf-8');
$arr = array(
array(
'西瓜',
'山竹',
array(
'好吃',
'便宜'
),
),
array(
'桃子',
'榴莲',
array(
'香气扑鼻',
'迎面而来'
),
),
array(
'葡萄',
'苹果',
array(
'好看',
'美味'
),
)
);
?>
PHP实战01(数组循环)
1.直接将HTML代码放入到PHP代码块中。
<ul class="nav-menu">
<?php
$menu = [
'首页',
'服务器',
'PHP',
'前端',
'Thinkphp',
'Layui',
'小程序'
];
?>
<?php
foreach ($menu as $menu_v) {
echo '<li>';
echo '<a href="/index.html">'.$menu_v.'</a>';
echo '</li>';
}
?>
运行结果。  2.将PHP代码于HTML代码穿插的进行。注意PHP代码的穿插,每一次都需要用<?php ,.,.. ?>包裹。
<?php
$menu = [
'首页',
'服务器',
'PHP',
'前端',
'Thinkphp',
'Layui',
'小程序'
];
?>
<?php
foreach ($menu as $menu_v) {
?>
<li>
<a href="/index.html"><?php echo $menu_v; ?></a>
</li>
<?php
}
?>

PHP的条件判断
三元运算符
$name = '小明';
echo '<hr>';
echo $name ?'我的名字是小蜜蜂':'我也不知道我是谁啊!!!';
if else elseif
$name = '小明';
if($name){
echo $name;
}elseif($name){
echo 'your are a pig !';
}
else{
echo 'i don\'t konw who i am !';
}
switch case defult break
$number='1123121';
switch($number){
case '1123':
echo 'input 1123';
break;
case '2':
echo 'input 2';
break;
case '3':
echo 'input 3';
break;
default:
echo $number;
};
match
$str = 'age';
echo match ($str) {
'name' => 'xioam',
'age' => '12',
default => 'imasas',
};
match 与switch的区别 1.match是一个表达式,表示的结果可以放在存储的变量中,或者返回。 2.match的分支仅支持单行表达式,不用终端。
$str = 'age';
echo match ($str) {
'name' => 'xioam', echo '1212';
'age' => '12',
default => 'imasas',
};
3.match进行严格的匹配比较。
PHP特殊数据类型

1.NULL
表示变量没有值
2.资源类型
PHP中的函数
1.String函数

2.数组函数
 官网手册:php数组相关函数官网手册
3.自定义函数
都在代码里了: 和C语言的函数类似。 $nm3 = 10 默认传参。
<?php
$num2 = 90;
function num($num1,$num2,$num3=10){
return $num1+$num2+$num3;
}
echo num(10,12);
?>
也可以在自定义函数中引用全局变量。
<?php
$num2 = 90;
function num($num1,$num3=10){
global $num2;
return $num1+$num2+$num3;
}
echo num(10);
?>
命名参数:
- 仅仅指定必传参数。跳过可选参数。
- 参数与顺序无关,且具有自己记录的功能。
 运行结果:c d 的位置不影响最后的结果 
PHP的运算符
  输出结果:  第一次执行$num++,先执行那个num的值,后num的值加1,第二次输出才为$num+1.($num–也一样) ++$num 是先加u一再直接输出。(–$sum也一样) 连接符: 一个变量与整型连接必须在整型前面加空格。   比较运算符:  ===类似于C语言中的==,不但比较数值还比较数值的类型。 字符串与数字的比较: PHP8中: 0 == ‘hello’ //false 与数字字符串比较时,PHP8使用数字比较,否则将数字转化为数字字符串进行比较。 逻辑运算符:  优先级和C语言相似
PHP实战02(函数)
examp1: 下图的代码表示:判断标题是是否存在,用到了if语句和函数isset(),存在则输出标题。  example2: 下图的代码表示:如果图片的不为空的话,即有图片的话就输出图片。empty() 函数是判断()的是否为空,为空返回真,前面再加一个!表示取反,即表示有图片。这个条件下输图片。  下图是修改前的原始代码,进行比较。  examp3:   isset()函数会把0看成真,即上述的代码的输出结果为:这是isset输出。
PHP循环
1.while
<?php
$int = 1;
while($int<10){
$int++;
echo $int;
}
?>A
2.do while
<?php
$int = 1;
do{
$int++;
echo $int;
echo '<hr>';
}while($int < 10)
?>
3.for
<?php
$int = 1;
for($int;$int<10;$int++){
echo $int;
echo '<hr>';
}
?>
4.continue 结束当前循环,进入下次循环。 5和6一起输出。
<?php
$int = 1;
for($int;$int<10;$int++){
echo $int;
if($int==5){
continue;
}
echo '<hr>';
}
?>
5.break 结束循环,可以跳出多层循环。
PHP8的JIT特性
|