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>";
相关推荐
两个人的幸福9 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820712 天前
PHP 扩展——从入门到理解
php
鹏仔先生13 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下13 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip13 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒13 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog25013 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis13 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel