一.简单博客标题设置
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函数
注意:+号这里的键名相同是全等:即顺序相同,类型相同
+ 是"并集运算符",规则:
- 以左数组为主。
- 如果左数组中已有相同 key,右数组的值会被忽略。
- 左右 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 是"值拼接":
- 数字索引会重新索引,从 0 开始。
- 字符串索引保留。
- 整数和字符串数字不严格是因为整数数字字符串会被自动转换成整数
PHP 的数组 key 规则:
- 整数数字字符串会被自动转换成整数
- 其他字符串不会转换:
作用
合并一个或多个数组
语法
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>";