Leetcode基础刷题之PHP解析( 115. Distinct Subsequences)

这道题有点意思的。给定两个字符串,要你在字符串S中找出所有字符串T的子序列。第一个b太多了,容易弄混,直接看例子2。最终的结果是5,就说明在babgbag中能找出5个bag这样的子序列。你可以中间删除或者不删,T是bag,从S的第一个字符串找,先ba,下一个是b,bab不是他的子序列,在下一个是g,现在S中babg删掉b就是子序列了。就是这样的顺序,可以从中删除掉不符合的字符,但是位置不...

Go 语言错误及异常处理篇(一):error 接口及其使用

PHP 的错误和异常处理逻辑一直比较混乱,对于错误处理,在 PHP 5 中是通过 error_reporting 函数设置错误报告级别,然后通过 set_error_handler 函数注册全局的错误处理器,PHP 7 改变了大部分错误的报告方式,转而以 Error 异常形式抛出。对于异常处理,我们可以通过 try...catch... 语句对运行时异常进行捕获,捕获异常可以或处理或抛给...

使用 Firewall 扩展包全面保护 Laravel 应用免受恶意攻击

功能简介 Firewall 扩展包是专门为 Laravel 应用打造的 Web 应用防火墙(WAF),该扩展包可用于保护 Laravel 应用免受不同类型的攻击,比如常见的 XSS(跨站脚本攻击)、SQLi(SQL 注入攻击)、RFI(远程文件包含攻击)、LFI(本地文件包含攻击)、User Agent(用户代理注入攻击)等,此外,它还能够屏蔽重复的攻击并且在攻击到来时发送邮件/Slac...

通过 Livewire 在 Laravel 项目中实现基于 PHP 的全栈开发(三):数据绑定及底层实现

上篇教程我们介绍了 Livewire 组件创建和渲染的底层实现逻辑,这篇教程我们来演示下数据绑定的使用示例。和 Vue 组件类似,数据绑定的作用主要是在不刷新页面的情况下实现视图中某些区块数据的动态更新,而且这个绑定是双向的:后端数据修改后可以即时渲染到视图模板,在视图模板中修改数据后也可以将其更新到后端绑定变量。 双向绑定 通过上篇教程的分析我们已经知道,Livewire 组件的数据绑...

Laravel 6.0 将新增为指定队列任务设置中间件的功能

Taylor Otwell 在 Laravel 6 中新增了为指定队列任务设置中间件的能力,以便我们在执行某些队列任务之前先执行一些业务逻辑: This [pull request] adds an easy way to have job specific middleware for queued jobs. Global job middleware were actually ...

Go 语言面向对象编程系列教程(十) —— 接口篇:空接口及其使用场景

熟悉 Java 的同学应该都知道,在这个号称血统最纯正的面向对象编程语言中,「万事万物皆对象」,并且所有类都继承自祖宗类「Object」,所以 Object 类型变量可以指向任何类的实例。 Go 语言打破了传统面向对象编程中类与类之间继承的概念,而是通过组合实现方法和属性的重用,所以不存在类似的继承关系树,也就没有所谓的祖宗类,而且类与接口之间也不再通过 implements 关键字强制...