随笔分类 -  php杂记

记录一些常用的技巧吧
摘要:看到群里有刚入门的同学在讨论++和--自增减的问题。也许对于新手来说这个很容易犯错,不管新老手,我觉得我还是有必要在此写下避免给自己留下遗憾的Bug,废话不多说。直接切入正题, 我们看下如下先增代码: 再看下后增 上面2例应该很容易明白理解了吧。 阅读全文
posted @ 2018-06-12 23:40 周伯通之草堂 阅读(1372) 评论(0) 推荐(0) 编辑
摘要:一直认为PHP中“or”和“||”是可以划等号的,其实不然,它们存在一个优先级的差别。下面通过一个例子说明它们的差异: 但愿诸位博友也别再这里采坑了额。稍微注意下既可。 阅读全文
posted @ 2018-06-05 22:33 周伯通之草堂 阅读(3201) 评论(0) 推荐(0) 编辑
摘要:windows不支持pcntl的多线程(非Unix类系统不支持此模块),pcntl在很久很久之前就听过了,但是一直没有尝试着真正要用它。 这不,遇到socket问题了,看socket,遇到pcntl了,再看看吧。这里是某个人的测试代码: 因为上面有作者有注释,所以我就不再多贴这篇文章的地址了。原网页 阅读全文
posted @ 2018-06-03 23:30 周伯通之草堂 阅读(3411) 评论(0) 推荐(1) 编辑
摘要:ApiDebugger,是一个开源的接口调试IntelliJ IDEA插件,具有与IDEA一致的界面,无需切换程序即可完成网络API请求,让你的code更加沉浸式。 安装 或者快捷键(Ctrl+alt+s) 重启后发现右上角多了一个 预览 支持的请求方式 目前ApiDebugger支持 GET PO 阅读全文
posted @ 2018-05-04 22:45 周伯通之草堂 阅读(714) 评论(0) 推荐(0) 编辑
摘要:今天遇到一个bug,获取有效期值错误,在定位跟踪后发现有效期有值,如下: 但是在该时间戳的基础上加上1 year后, $expireDate的值为false,而不是正确的时间戳。 网上搜索一下,说是32位的unix时间戳漏洞,称为Y2K38 漏洞。64位的系统不受此影响. Y2K38 漏洞 那么那如 阅读全文
posted @ 2018-05-02 15:18 周伯通之草堂 阅读(8306) 评论(0) 推荐(0) 编辑
摘要:PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。php的Traits和Go语言的组合功能有点类似, 通过在类中使用use关键字声明要组合的Trait名称,而具体某个Trait的声明使用trait关键词,Trait不能直接实例化。具体用法请看下 阅读全文
posted @ 2018-05-01 23:41 周伯通之草堂 阅读(11060) 评论(0) 推荐(6) 编辑
摘要:先简单粗俗的描述下:public 表示全局,类内部外部子类都可以访问;private表示私有的,只有本类内部可以使用;protected表示受保护的,只有本类或子类或父类中可以访问; 再啰嗦的解释下: 一、 public: 公有类型 在子类中可以通过 self::属性名(或方法名) 调用public 阅读全文
posted @ 2018-05-01 15:01 周伯通之草堂 阅读(39012) 评论(0) 推荐(3) 编辑
摘要:swoole和workerman他们都可以实现即时通信的功能,这里我简单的就workman作为windows服务器启动为例说哈吧。直接进入正题: 下载这个聊天室项目 workerman聊天室 http://www.workerman.net/workerman-chat 点击 start_for_w 阅读全文
posted @ 2018-04-26 15:11 周伯通之草堂 阅读(1611) 评论(0) 推荐(0) 编辑
摘要:%s", $mtimestamp, $datetime);//1523856374.820 => 2018-04-16 13:26:14.820 ?> 阅读全文
posted @ 2018-04-16 13:27 周伯通之草堂 阅读(8556) 评论(0) 推荐(1) 编辑
摘要:PHP它最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之一。 在PHP中我们有的时候其实希望在执行某项操作的时候,同时去执行另外一项操作,举一个场景:在用户抢票的时候,你并不希望用户排队去连接 阅读全文
posted @ 2018-04-13 00:05 周伯通之草堂 阅读(663) 评论(0) 推荐(0) 编辑
摘要:直入正题吧:首先创建一张 students 表 不带参数的存储过程 调用存储过程: call select_students_count(); 带参数的存储过程 执行存储过程 啊。这里咋不对呢?数据是存在的,为何返回0?说道这里,mysql存储过程在传递中文的时候注意字符集问题。处理的方式有两种,我 阅读全文
posted @ 2018-02-23 23:17 周伯通之草堂 阅读(358) 评论(0) 推荐(0) 编辑
摘要:PHP有很多内置的魔术方法,这里我们聊哈tostring和involk吧。 __tostring()魔术方法 将一个对象当做一个字符串来使用时,会自动调用该方法,并且在该方法中,可以返回一定的字符串,以表明该对象转换为字符串之后的结果。该魔术方法比较常用。 注意:如果没有定义该方法,则对象无法当做字 阅读全文
posted @ 2018-02-18 23:42 周伯通之草堂 阅读(487) 评论(0) 推荐(0) 编辑
摘要:反射 反射,直观理解就是根据到达地找到出发地和来源。我们可以仅仅通过一个光秃秃对象就能知道它所属的类、拥有哪些方法。 反射是指在PHP运行状态中,扩展分析PHP程序,导出或提出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取信息以及动态调用对象方法的功能称为反射API。 反射其实不难理解 阅读全文
posted @ 2018-02-18 10:13 周伯通之草堂 阅读(1039) 评论(1) 推荐(1) 编辑
摘要:1、PHP中异常的独特性 PHP中的异常的独特性,即PHP中的异常不同于主流语言C++、java中的异常。在Java中,异常是唯一的错误报告方式,而在PHP中却不是这样,而是把所有不正常的情况都视作了错误进行处理。这两种语言对异常和错误的界定存在分歧。什么是异常什么是错误,两种语言的设计者存在不同的 阅读全文
posted @ 2018-02-13 23:33 周伯通之草堂 阅读(457) 评论(0) 推荐(0) 编辑
摘要:定义和用法 glob() 函数返回匹配指定模式的文件名或目录。 该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。 可选。规定特殊的设定。 GLOB_MARK - 在每个返回的项目中加一个斜线 GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序) GLOB_ 阅读全文
posted @ 2018-02-13 00:43 周伯通之草堂 阅读(1029) 评论(0) 推荐(0) 编辑
摘要:PHP CodeSniffer是PEAR中的一个用PHP5写的一个PHP的代码风格检测器,它根据预先设定好的PHP编码风格和规则,去检查应用中的代码风格情况是否有违反一组预先设置好的编码标准,内置了ZEND,PEAR的编码风格规则,当然也支持自己定制。PHP CodeSniffer 是确保代码简洁一 阅读全文
posted @ 2018-01-30 22:53 周伯通之草堂 阅读(778) 评论(0) 推荐(0) 编辑
摘要:使用下面两种方法可以获取post数据 阅读全文
posted @ 2018-01-26 12:38 周伯通之草堂 阅读(424) 评论(0) 推荐(0) 编辑
摘要:谈下php的运行原理--Opcodes。 比如以下一段简单的代码: 执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend) 所以当开启OPcache的时候,php在一次请求中已经将Opcodes进行了缓存,那么下次请求的时候,就是跳过前三步,直接运行OPcache里对应的Opc 阅读全文
posted @ 2018-01-25 00:08 周伯通之草堂 阅读(862) 评论(0) 推荐(0) 编辑
摘要:1.单字节字符串反转 php提供了现成的用于字符串反转的函数strrev() 2.对于包含中文的多字节字符串需要用到mb_substr() 3.算法实现 首位交换 阅读全文
posted @ 2018-01-11 09:53 周伯通之草堂 阅读(241) 评论(0) 推荐(0) 编辑
摘要:封装一个curl模拟浏览器请求的函数,如下: /** * curl模拟浏览器请求 * @param unknown $url 请求的地址 * @param array $params 请求地址所需要的参数 * @param string $method 请求的类型 * @param array $headers http请求头 * @retu... 阅读全文
posted @ 2017-12-29 19:05 周伯通之草堂 阅读(4641) 评论(0) 推荐(0) 编辑