<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HTML1033808020的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HTML1033808020</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HTML1033808020]]></copyright><item><title><![CDATA[epoll模型讲解]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/166590571</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/166590571</guid><author>HTML1033808020</author><pubDate>Thu, 24 Sep 2026 14:10:11 +0800</pubDate><description><![CDATA[浏览器（客户端） → Nginx Worker → Swoole Master (Reactor 线程) → Swoole Worker (PHP 业务)]]></description><category></category></item><item><title><![CDATA[谷歌浏览器针对一个请求地址会串行执行]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/155601484</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/155601484</guid><author>HTML1033808020</author><pubDate>Fri, 05 Dec 2025 11:24:11 +0800</pubDate><description><![CDATA[浏览器针对一个请求地址会串行执行。]]></description><category></category></item><item><title><![CDATA[cdn加速原理]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/141125435</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/141125435</guid><author>HTML1033808020</author><pubDate>Mon, 12 Aug 2024 10:43:31 +0800</pubDate><description><![CDATA[一文搞懂CDN加速原理-腾讯云开发者社区-腾讯云]]></description><category></category></item><item><title><![CDATA[php用grpc调用golang使用详解]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/133804339</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/133804339</guid><author>HTML1033808020</author><pubDate>Fri, 13 Oct 2023 10:31:49 +0800</pubDate><description><![CDATA[注意：go-grpc_out表示grpc服务端生成目录，因已指定插件为go，所以可不与--plugin一起使用；go_out表示请求及响应数据格式生成目录。文件中的注释生成HTML、JSON、DocBook和Markdown文档，php语言对应的插件是grpc_php_plugin。注意：grpc_out表示grpc客户端生成目录，需与--plugin一起使用；php_out表示请求及响应数据格式生成目录。是Google Protocol Buffers的编译器，它可以将。的文档生成器插件，它可以从。]]></description><category></category></item><item><title><![CDATA[解决homebrew install卡住问题]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/124949615</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/124949615</guid><author>HTML1033808020</author><pubDate>Tue, 24 May 2022 16:37:10 +0800</pubDate><description><![CDATA[homebrew install卡住]]></description><category></category></item><item><title><![CDATA[解决composer报错Composer\Downloader\TransportException]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/124949278</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/124949278</guid><author>HTML1033808020</author><pubDate>Tue, 24 May 2022 16:27:45 +0800</pubDate><description><![CDATA[Composer\Downloader\TransportException]]></description><category></category></item><item><title><![CDATA[self与static、get_class()与get_called_class()区别]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/121534107</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/121534107</guid><author>HTML1033808020</author><pubDate>Thu, 25 Nov 2021 11:48:35 +0800</pubDate><description><![CDATA[在日常项目代码中，大家一定经常能看到self、static、get_class、get_called_class()的使用，但不一定都知道它们的区别，本文就以个人理解来说明一下。

1、self与static

self指向的是当前类，既self代码所在类；static首先指向调用类，既谁调用static所在类的代码就指向谁，一般指向子类。如果没有子类，则与self相同指向的是当前类；

示例：


&lt;?php
 
class Father{
    protected  static $name =]]></description><category></category></item><item><title><![CDATA[preg_match与preg_match_all区别]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/121496582</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/121496582</guid><author>HTML1033808020</author><pubDate>Tue, 23 Nov 2021 17:18:14 +0800</pubDate><description><![CDATA[定义：

preg_match_all：从左边开始一直到尾部，找出所有匹配的字符串。匹配结果$matches为二维数组，$matches[0]是匹配到的完整结果，$matches[1]是匹配到完整结果的字组。


preg_match：从左边开始，匹配到第一个符合字符串后停止匹配。匹配结果$matches为一维数组，$matches[0]是匹配到的完整结果，$matches[1]是匹配到完整结果的字组。

示例1：


$str = "Name: &lt;b&gt;PHP&lt;/b&gt; &lt;br&]]></description><category></category></item><item><title><![CDATA[解决github访问慢的问题]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/121338334</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/121338334</guid><author>HTML1033808020</author><pubDate>Mon, 15 Nov 2021 16:56:57 +0800</pubDate><description><![CDATA[配置hosts如下：

http://github.com 140.82.113.3
http://gist.github.com 140.82.113.3
http://help.github.com 185.199.108.154 
http://nodeload.github.com 140.82.113.9
http://github.global.ssl.fastly.net 199.232.69.194
http://raw.github.com 185.199.108.133
http:...]]></description><category></category></item><item><title><![CDATA[PHP生成器yield的用法]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/115303163</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/115303163</guid><author>HTML1033808020</author><pubDate>Mon, 29 Mar 2021 15:49:38 +0800</pubDate><description><![CDATA[问题：

工作中，经常会遇到处理大量数据的情况，比如读一个大的文件，然后对文件内容做处理，例如：


&lt;?php

function read_txt($file)
{
    $data = [];
    $handle = fopen($file, 'r');
    while (!feof($handle)) {
        $data[] = fgets($handle);
    }
    fclose($handle);
    return $data;
}

function]]></description><category></category></item><item><title><![CDATA[PHP斐波那契数列的不同实现（尾递归+循环）]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/115302041</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/115302041</guid><author>HTML1033808020</author><pubDate>Mon, 29 Mar 2021 15:13:23 +0800</pubDate><description><![CDATA[递归：


public function fei($n)
{
        static $map = []; //使用局部静态变量存储上一次递归的值，尾递归实现
        if (isset($map[$n])) {
            return $map[$n];
        }
        if ($n &lt; 3) {
            $map[$n] = 1;
            return 1;
        }
        $map[$n] = ]]></description><category></category></item><item><title><![CDATA[composer install及require卡住问题解决办法]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/113737880</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/113737880</guid><author>HTML1033808020</author><pubDate>Sun, 07 Feb 2021 11:25:46 +0800</pubDate><description><![CDATA[问题：使用composer安装依赖包时经常会遇到卡住或者提示PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 2631656 bytes) in phar:///usr/local/bin/composer/src/Composer/Cache.php on line 84内存不足问题。

解决方法：


1、可能是镜像源问题，使用composer config -l可查看当前镜像源。.]]></description><category></category></item><item><title><![CDATA[传值与传引用]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/112379845</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/112379845</guid><author>HTML1033808020</author><pubDate>Fri, 08 Jan 2021 19:18:42 +0800</pubDate><description><![CDATA[传值就是简单的赋值


$a = 20;
$b = $a;
echo $b; //输出20

无论怎么修改变量b的值，变量a的值都不会发生改变。

传引用有点像C语言的指针，指向的是变量内容的地址


$a = 20;
$b = &amp;$a;
echo $b; //输出20
$b = 15;
echo $a; //输出15

通过把变量内容的地址进行赋值，变量a与变量b都指向同一个变量内容地址；当修改$b变量值时，$a的值也被改变了，有点像unix中的硬链接。

优缺点：当变量值较大时，如果使用传值方式]]></description><category></category></item><item><title><![CDATA[时序图规则]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/112371839</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/112371839</guid><author>HTML1033808020</author><pubDate>Fri, 08 Jan 2021 17:01:19 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/ffengz/article/details/75447876
]]></description><category></category></item><item><title><![CDATA[PHP方法名与类名相同时实例化类会触发该方法]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/112273755</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/112273755</guid><author>HTML1033808020</author><pubDate>Wed, 06 Jan 2021 14:57:05 +0800</pubDate><description><![CDATA[PHP中方法名与类名相同时（忽略大小写），且没有定义构造函数，那么在类实例化时，会把该方法当做构造函数执行，使用时需注意。


&lt;?php

class A {

	public function a() 
	{
		echo 'i am a';
	}
}

$a = new A();
echo $a-&gt;a();


执行结果：


i am ai am a


...]]></description><category></category></item><item><title><![CDATA[myisam与innodb的区别]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/108282752</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/108282752</guid><author>HTML1033808020</author><pubDate>Fri, 28 Aug 2020 16:47:06 +0800</pubDate><description><![CDATA[分享两篇总结的很好的文章：

https://blog.youkuaiyun.com/qq_35642036/article/details/82820178

https://my.oschina.net/xiaoyoung/blog/3046779
]]></description><category></category></item><item><title><![CDATA[PHP错误与异常处理try和catch]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/108128981</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/108128981</guid><author>HTML1033808020</author><pubDate>Thu, 20 Aug 2020 17:46:57 +0800</pubDate><description><![CDATA[　　请一定要注意，没有特殊说明：本例PHP Version &lt; 7
　　说起PHP异常处理，大家首先会想到try-catch，那好，我们先看一段程序吧：有一个test.php文件，有一段简单的PHP程序，内容如下，然后命令行执行：php test.php




1 &lt;?php
2     $num = 0;
3     try {
4         echo 1/$num;
5
6     } catch (Exception $e){
7         echo $e-&gt;g...]]></description><category></category></item><item><title><![CDATA[git设置hooks检测]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/106523095</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/106523095</guid><author>HTML1033808020</author><pubDate>Wed, 03 Jun 2020 14:13:44 +0800</pubDate><description><![CDATA[设置全局

git 1.7.1版本
1. Enable git templates:

git config --global init.templatedir '~/.git-templates'

# This tells git to copy everything in ~/.git-templates to your per-project .git/ directory when you run git init

2. Create a directory to hold the global]]></description><category></category></item><item><title><![CDATA[把条件写在 join on 后面和写到where后面的区别]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/78850120</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/78850120</guid><author>HTML1033808020</author><pubDate>Wed, 20 Dec 2017 10:14:42 +0800</pubDate><description><![CDATA[把条件写在 join on 后面和写到where后面的区别]]></description><category></category></item><item><title><![CDATA[mysql分库分表后如何满足不同维度查询]]></title><link>https://blog.youkuaiyun.com/HTML1033808020/article/details/76260342</link><guid>https://blog.youkuaiyun.com/HTML1033808020/article/details/76260342</guid><author>HTML1033808020</author><pubDate>Fri, 28 Jul 2017 15:12:53 +0800</pubDate><description><![CDATA[mysql分库分表后如何满足不同维度查询]]></description><category></category></item></channel></rss>