广度优先搜索 PHP 实现

直接上代码了,注释都在代码里面了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <?php /** * 广度搜索 * * 你的朋友关系,以及朋友的朋友的关系,查看你的朋友或者朋友的朋友是不是包含 m 结尾的名字 */ // 需要检索的数组 $graph = []; $graph['you'] = ['alice', 'bob',……

阅读全文

29周岁生日快乐

一不小心29周岁了,在努力一下就而立了,所以这次就不努力了,慢慢来吧。 跟郝太太在一起已经一年半了,这一年半有争吵,有开心,有很多事情。当然最重要的是,房子买了,证也领了,啊哈哈哈。 最近一个月的学习效果也超级好,为半年后的折腾做准备吧。 蛋糕是郝太太给定的,好吃,喜欢 菜是我做的,丑但……

阅读全文

给博客升级成功了

话说这次升级还是比较坑的,踏了以前注意过的坑。 比如说 config:cache 以后读取 env 失败的问题, 参见 https://laravel-china.org/topics/3362/laravel-use-env-to-read-the-environment-variable-null 还有 https 的问题,不过总算是搞定了,接下来还有几个问题,小调整一下就 ok 了,距离上次升级博客已经过去了一年,现在看来,这一年,还是进步了不少东西的。继续加油吧……

阅读全文

PHP 细节补全计划:引用

图片alt

最近在公司比较忙,以前有空闲的时候没有发现的东西,反而再忙的时候会加深体会。所以就动了心思准备写一个 php 细节补全的系列,不知道能写多少,慢慢来吧,这个就是第一篇了。

其实,平时我个人觉得再使用引用的时候机会并没有那么多,但是呢,引用这个东西是绝对不可以忽略的。

引用平时就我个人来说使用的场景有如下几个:

  • 有批量处理数组数据的时候会使用引用,这样再方法里面就不用在单独返回了,比较省事
  • 再有递归调用的时候也会使用,但是使用的时候需要注意小心踩坑

剩下的貌似就不是很多了,但是这两天看过几个面试题,让我平时没注意的一些东西或者说没有深入考虑的东西,有了更深入的理解。

先看下面这个题:

……

阅读全文

Slim Framework中间件的分析

最近也在分析中间件的东西。翻看了一下 laravel 的实现。但是 laravel 的实现很复杂,其实也不是很复杂,就是它的结构么,跳来跳去的,所以最后还是看了slim,毕竟简单。容易分析。 通过源码我可能得知有一个 MiddlewareAwareTrait 这个 Trait,然后由 App 来 use 这个 trait。 这里面有3个方法,分别是 addMiddleware、……

阅读全文

读书笔记:简单思考

上周五的时候在一个地方看到了简单思考这本书,于是就利用周末的时间读了一下。发现这本书写的很对,但是有时候现实并不会构造那种场景,当然了如果你是一个 boss 则是可以自己构建那样的场景的。所以我就把现在适合我自己的东西总结一下吧,当然是用大白话总结了。 没事还是要多学习的,扯别的没用 多跟优秀……

阅读全文

终于构建了一个自己可用的 docker 了

话说,想学习 docker 很久了,一直以来总是没有时间去实践,其实也不是没有时间,而是一直没有一个好的时机去实践。 这周重做了系统了以后就忘记弄 vagrant 了。然后昨天就想用心的看一下 laravel 的源码,以加深自己的理解。但是发现本地没有 vagrant 环境,正好趁机搞一下 docker 了,于是就搞了起来。 主要参考了下面这两篇文章 https://segmentfault.com/a/1190000008833012 https://segmentfault.com/a/1190000008822648#articleHeader44 另外……

阅读全文

端午总结

人生第一个自驾游成功达成,很是开心,能跟心爱的人一起出去玩,虽然很累,虽然给小妞坑了,让我俩累的半死,但是依然很开心啊。 话说又是很久没有写东西了,不过还是有理由的,搬家,加班,各种忙。接下来应该会调整一些状态了,而且昨晚想了一下,为什么最近的状态特别不好。 哎呀,很多想说的,不知道……

阅读全文

deepin 添加 phpstorm 快捷方式到 application 目录

首先创建 Phpstorm.desktop 文件,并把下面的代码输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [Desktop Entry] Categories=Development; Comment[zh_CN]= Comment= Exec=/opt/phpstorm/bin/phpstorm.sh GenericName[zh_CN]=IDE GenericName=IDE Icon=/opt/phpstorm/bin/webide.png Name[zh_CN]=phpStorm Name=phpStorm Path= StartupNotify=true Terminal=false Type=Application X-DBUS-ServiceName= X-DBUS-StartupType= X-KDE-SubstituteUID=false X-KDE-Username=Learn Programming 说明一下 Exec 是执行文件的路径,Icon 是图标的路径,Categories 是分类,这个根据系统来就可以了 然后执行下面两行代码 1 2 sudo mv Phpstorm.desktop /usr/share/applications/ sudo chmod +x Phpstorm.desktop 这样就 ok 了,在 application 目录里面就会有……

阅读全文

通过快排和归并排序思考分治法

话说以前看过很多算法相关的书,大部分讲的都很模糊,然后直接上代码,当时看似理解了,可是时间一长就忘光光了,以前看书学习的都是如何去做,而自己也没有深入的思考过为何这么做,单纯的就是背下来那种。当学习到一定程度之后,发现基础知识还是非常重要的。 今天要说的就是分治法,什么是分治法,就……

阅读全文