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>";
相关推荐
JaguarJack12 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo12 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082852 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe2 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
longxiangam2 天前
Composer 私有仓库搭建
php·composer
上海云盾-高防顾问2 天前
DNS异常怎么办?快速排查+解决指南
开发语言·php
ShoreKiten2 天前
关于解决本地部署sqli-labs无法安装低版本php环境问题
开发语言·php
liliangcsdn3 天前
深入探索TD3算法的推理过程
开发语言·php