🎉PHP 8.3发布与新特性

This commit is contained in:
zyimm 2023-11-24 13:15:59 +08:00
parent cfdc2f01bd
commit 33c4ec124b
10 changed files with 36 additions and 18 deletions

View File

@ -4,7 +4,7 @@ date: 2021-09-30
---
## 关于本站
由 [Hexo](https://hexo.io/zh-cn/) & [NexT.Mist(主题)](https://theme-next.org/) 驱动支持。因评论系统基于Gittalk中国大陆地区读者访问本站时可能存在网络不稳定性
由 [Hexo](https://hexo.io/zh-cn/) & [NexT.Mist(主题)](https://theme-next.org/) 驱动支持。因评论系统基于Gitalk中国大陆地区读者访问本站时可能存在网络不稳定性
网站名称为何取名为 **Wake Me Up When September Ends**

View File

@ -1,5 +1,9 @@
---
title: 这是一段来源于 `carbon.now.sh` 的代码
title: Git 免密登录
date: 2022-09-30
tags:
- javascript
---
carbon.now.sh 可以让你的文本代码转换成图片,并可以随时分享出去!
@ -15,4 +19,4 @@ const unfold = (f, seed) => {
return res ? go(f, res[1], acc.concat([res[0]])) : acc
}
```
```

View File

@ -51,4 +51,5 @@ git branch -r | grep -v "main" | sed 's/origin\//:/' | xargs git push
```shell
git remote prune origin
```
该命令会检查本地仓库中的远程分支引用,并将那些在远程仓库中已经不存在的分支引用删除掉,以保持本地仓库的分支列表与远程仓库保持同步。

View File

@ -36,6 +36,7 @@ server {
client_max_body_size 500m;
}
```
### 3.fatal: 拒绝合并无关的历史
这个错误通常发生在尝试合并两个没有共同历史的分支时。解决这个问题的一种方法是使用--allow-unrelated-histories选项来强制合并。命令如下
@ -43,5 +44,5 @@ server {
```sh
git merge --allow-unrelated-histories <branch_name>
```
这个命令将允许你合并两个没有共同历史的分支。如果有冲突发生,需要解决冲突并手动提交合并结果。
这个命令将允许你合并两个没有共同历史的分支。如果有冲突发生,需要解决冲突并手动提交合并结果。

View File

@ -1,11 +1,12 @@
---
title: Ubuntu下CLion的C/C++环境搭建
date: 2022-10-16
tags: C++
tags:
- C++
---
使用Clion作为C++开发需要安装C++ g++ make 等编译工具链ubuntu提供了一个`build-essential`工具直接帮我们把c/c++对应的编译工具链依赖安装好
```sh
sudo apt-get install build-essential
```
```

View File

@ -1,9 +1,12 @@
---
title: C 语言实现类似php的array数据类型
date: 2023-03-30
tags: C
tags:
- C语言
---
语言实现类似php的array数据类型
```c
#include <stdio.h>
#include <stdlib.h>
@ -79,6 +82,7 @@ int main() {
}
```
上面code中使用了动态数组来表示类似于PHP的array数据类型。动态数组包含一个void指针数组和数组的大小和容量。使用realloc函数来实现动态扩容。在添加元素时先判断数组是否已满如果已满则动态扩容。在删除元素时将数组中的元素向前移动一个位置覆盖掉要删除的元素。在获取元素时根据索引返回相应的元素。需要注意的是由于数组中的元素是void指针类型因此需要进行类型转换后才能使用。
这种实现方式可以用于存储任意类型的数据包括基本类型、结构体、指针等。但需要注意的是由于C语言中没有自带的动态类型或泛型机制因此在使用动态数组时需要手动进行类型转换和类型检查否则可能会导致程序出错或崩溃。
这种实现方式可以用于存储任意类型的数据包括基本类型、结构体、指针等。但需要注意的是由于C语言中没有自带的动态类型或泛型机制因此在使用动态数组时需要手动进行类型转换和类型检查否则可能会导致程序出错或崩溃。

View File

@ -1,7 +1,9 @@
---
title: C语言函数指针理解
date: 2022-10-13
tags: C语言 嵌入式
tags:
- C语言
- 嵌入式
---
之前写了很长时间的PHP现在对PHP一些扩展以及swoole感兴趣但是自己的c语言的基础太差几乎忘记一干二净。首先学一下c语言c语言核心之一就是指针所以这里应该记录一下这边学到函数指针整理一下自己理解。

View File

@ -1,9 +1,9 @@
---
title: PHP代码统一规范规则细节
date: 2023-06-09
tags: PHP
tags:
- PHP
---
# 规则Rule
## PHPDoc

View File

@ -1,12 +1,14 @@
---
title: 设计模式-策略模式🍋
date: 2023-07-30
tags: 设计模式
tags:
- 设计模式
---
策略模式是一种行为设计模式, 它能让你定义一组算法和策略, 并将每种算法分别放入独立的类中, 根据不同场景使用不同算法和策略。
# 需求的场景
假设以需要一个服务或模块来实现消息通知功能,一开始只需要邮件通知,你实现发送邮件通知功能😀。。。。
然后几天后需求方提出能不能增加短信通知,你加班加点实现短信通知功能 😵。。。
@ -28,6 +30,7 @@ tags: 设计模式
3. 约定好策略算法接口
# 实现
这边使用PHP语言实现其他具有oop编程语言逻辑类似
1. 👆定义策略算法接口
@ -38,6 +41,7 @@ interface StrategyInterface
public function handle(ContextInterface $content): mixed;
}
```
接口StrategyInterface handle 依赖Context上下文对象。Context在这个需求中可以封装为需要发送消息对象实现依赖。如短信邮件:
```php
@ -73,7 +77,6 @@ class DispatchStrategy
}
```
3. 🫰运行调用
```php
@ -81,4 +84,4 @@ class DispatchStrategy
(new DispatchStrategy(new Email(), new Context()))->dispatch(); //邮件
(new DispatchStrategy(new Sms(), new Context()))->dispatch(); //短信
```
```

View File

@ -1,26 +1,28 @@
---
title: 💫设计模式-工厂模式
date: 2023-09-02
tags: 设计模式
tags:
- 设计模式
---
**工厂模式**是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。
# 需求的场景
## 需求的场景
这种模式在面试中经常会被问到很多面试题的答案会表示该模式经常用于框架的db或cache组件设计。
假设你所在项目组在开发某个项目中使用了多种缓存数据源比如有内存redis本地文件。目前每次根据不同场景使用不同类型缓存需要实例化不同缓存实例进行操作比较繁琐。项目组开发人员希望统一调用缓存入口简化缓存调用心智负担。
### 如何解决
# 如何解决
1. 定义cache工厂类(父类)和依赖类
2. 编写各个类型cache子类
3. cache工厂类创建调用
<!--more-->
# 实现
### 实现
>
> 这边实现使用PHP代码作为演示其他oop语言逻辑类似。
**😼1.定义cache工厂类(父类)和依赖类**
```php