19.php实战

一.简单博客标题设置

php 复制代码
<?php
$title = '悠悠的博客2025'
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $title ?></title>
</head>
<?php
$content = "这里是博客内容,可以使用html,css来编写自己的网站"
?>

<body>
    <h1>欢迎来到我的博客</h1>
    <div class="content">
        <?php echo $content ?>
    </div>
</body>

</html>

二.数组运算符

2.1 +号运算符(合并)

注意:只会保留第一个数组中的键对值,二忽略后面数组中相同键名的元素

如果想要合并两个数组并覆盖相同键名的元素,可以使用array_merge函数

注意:+号这里的键名相同是全等:即顺序相同,类型相同

+ 是"并集运算符",规则:

  1. 以左数组为主。
  2. 如果左数组中已有相同 key,右数组的值会被忽略
  3. 左右 key 比较 不严格 ,即 '0'0 被认为是相同的 key。
php 复制代码
<?php
echo "<pre>";

$A = [1, 2, 3];
$B = [4, 5, 6];
$C = $A + $B;
print_r($C); //[1,2,3]
print_r(array_merge($A, $B));
/* 
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
    Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
*/

$a = [0 => 1, 1 => 2, 2 => 3];
$b = [3 => 4, 5 => 6, 6 => 7];
$c = $a + $b;
print_r($c);
print_r(array_merge($a, $b));
/* 
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [5] => 6
    [6] => 7
)
       Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
*/

$a = [0 => 1, 1 => 2, 2 => 3];
$b = ['0' => 4, 'c' => 6, 6 => 7];
$c = $a + $b;
print_r($c);
print_r(array_merge($a, $b));
/* 
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [c] => 6
    [6] => 7
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [c] => 6
    [4] => 7
)
*/
echo "</pre>";
array_merge

array_merge 是"值拼接"

  1. 数字索引会重新索引,从 0 开始。
  2. 字符串索引保留。
  3. 整数和字符串数字不严格是因为整数数字字符串会被自动转换成整数

PHP 的数组 key 规则:

  1. 整数数字字符串会被自动转换成整数
  2. 其他字符串不会转换:
作用

合并一个或多个数组

语法
php 复制代码
array_merge(array ...$arrays): array
参数

可以传多个数组 不影响原数组

返回值

返回新的结果数组。如果调用时不带任何参数,则返回空数组

注意:7.4以后现在调用此函数时无需任何参数。此前,至少需要一个参数

示例
php 复制代码
$a = [0 => 1, 1 => 2, 2 => 3];
$b = ['0' => 4, 'c' => 6, 6 => 7];
print_r(array_merge($a, $b));
/* 
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [c] => 6
    [4] => 7
)
*/

2.2.松散和严格比较==,===

示例

php 复制代码
<?php
echo "<pre>";

$A = [1, 2, 3];
$B = ['1', '2', '3'];
//全等 顺序相同 键对值相同 (区别在于一个是类型相同,一个不比较类型)
var_dump($A == $B); //true 
var_dump($A === $B); //false

$A = [2, 1, 3];
$B = [1, 2, 3];

var_dump($A == $B); //false 
var_dump($A === $B); //false



$A = [0 => 1, 1 => 2, 2 => 3];
$B = ['0' => '1', '1' => '2', '2' => '3'];
//全等 顺序相同 键对值相同 (区别在于value key的比较 一个是严格比较类型是否相同 严格全等===,一个不比较类型 ==)
var_dump($A == $B); //bool(true) 但是值是严格全等 
var_dump($A === $B); //bool(false)

/* 
总结
  == :值相等即可,键名会自动做数字字符串转换
  === :值和类型都要严格相等,键名也要类型相同
*/
echo "</pre>";

2.3 != 和<>是一样的

例子 名称 结果
a == b 等于 true,如果类型转换后 a 等于 b。
a === b 全等 true,如果 a 等于 b,并且它们的类型也相同。
a != b 不等 true,如果类型转换后 a 不等于 b。
a \<\> b 不等 true,如果类型转换后 a 不等于 b。
a !== b 不全等 true,如果 a 不等于 b,或者它们的类型不同。
a \< b 小于 true,如果 a 严格小于 b。
a \> b 大于 true,如果 a 严格大于 b。
a \<= b 小于等于 true,如果 a 小于或者等于 b。
a \>= b 大于等于 true,如果 a 大于或者等于 b。
a \<=\> b 太空船运算符(组合比较符) a小于、等于、大于 b时 分别返回一个小于、等于、大于0的 int 值。

2.4 !==

2.5 三元运算符?:

php 复制代码
$name = isset($username) ? $username : "测试";
var_dump($name);//"测试"

2.6 空合并运算符 ??

php7以后才支持

用于简化处理可能为null的变量或数组元素的情况

它的作用是判断一个变量是否未定义或者null,如果未定义或者null,则返回指定的默认值;否则返回该变量的值

php 复制代码
$name = $username ?? "test";
echo $name; //test

2.7组合比较符<=>

可比较整数,浮点数,字符串

  • 如果 a > a> a>b 返回1
  • 如果 a = = a== a==b 返回0
  • 如果 a < a< a<b 返回-1
php 复制代码
$a = 'acd';
$b = 'ace';
var_dump($a <=> $b); //int(-1)

2.8 比较 undefined 0,false,null,空值

值类型 示例
未定义(undefined) $x 未赋值直接用
null $x = null;
false $x = false;
0(整型) $x = 0;
0.0(浮点型) $x = 0.0;
空字符串 $x = '';
空数组 $x = [];

分析isset()is_null,empty()的区别

函数 定义 返回值 特点
isset($var) 变量是否已定义且不为 null bool 如果变量未定义或为 null,返回 false
is_null($var) 变量值是否为 null bool 不管变量是否存在,未定义会报 Notice
empty($var) 变量是否为"空" bool 0, 0.0, false, '', null, [], '0' 都视为空。未定义也不会报错,直接返回 true
注意:
  • PHP 是弱类型语言,比较时会进行类型转换。

  • 布尔上下文(if ($x))下,0, 0.0, '', false, null, [] 都会被视为 false

undefined 变量使用时会 报 Notice
比较
php 复制代码
var_dump(null == false);   // true 或 false? false
var_dump(null == 0);       // false
var_dump(null == '');      // true
var_dump(false == 0);      // true
var_dump(false == '');     // true
var_dump(0 == '');         // true

三.数组函数的简单使用

编写一个PHP函数,该函数将诶胡搜一个整数数组作为参数,并返回一个关联数组,包含一下统计信息:

  • count:数组中的元素个数
  • sum:数组中所有元素的总和
  • average:数组中元素的平均值
  • max :数组中最大值
  • min:数组中最小值
  • sorted:按照从小到大排序的数组

实战结果:

php 复制代码
<?php
echo "<pre>";
$numbers = [5, 9, 3, 2, 7, 1, 6];
function test($numbers)
{
  $arr = [];
  $arr['count'] = count($numbers);
  $arr['sum'] = array_sum($numbers);
  $arr['average'] =  $arr['sum'] / $arr['count'];
  $arr['max'] = max($numbers);
  $arr['min'] = min($numbers);
  sort($numbers); //sort会改变内部元素 返回值永远是true
  $arr['sorted'] = $numbers;
  print_r($arr);
  return $arr;
}
test($numbers);
echo "</pre>";
相关推荐
black_blank2 小时前
综合组网实验
网络·智能路由器·php
霸王大陆3 小时前
《零基础学PHP:从入门到实战》教程-模块七:MySQL 数据库基础-4
数据库·mysql·php
代码or搬砖3 小时前
常见的五个编译时异常和常见的五个编译时异常
开发语言·php
007php0073 小时前
redis缓存功能结合实际项目面试之问题与解析
网络·redis·nginx·缓存·面试·职场和发展·php
kiramario3 小时前
解决docker容器下php-fpm模式的wordpress无法被nginx代理,静态CSS文件无法请求
nginx·docker·php
yenggd3 小时前
samba服务配置原理
服务器·开发语言·php
翼龙云_cloud3 小时前
亚马逊云渠道商:如何3 步实现 AWS RDS 读写分离?
运维·服务器·云计算·php·aws
万岳软件开发小城13 小时前
教育APP/小程序开发标准版图:课程、题库、直播、学习一站式梳理
大数据·php·uniapp·在线教育系统源码·教育app开发·教育软件开发
q***99413 小时前
index.php 和 php
开发语言·php