• 如何在 PHP 中处理 Protocol Buffers 数据

    Posted by : lon.y@qq.com on 2017年7月4日

    Protocol Buffers是谷歌定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高。感兴趣的可以访问这里。Protocol Buffers官方只支持C++, Java, Python, C#, Go,如果想在PHP中使用Protocol Buffers,需要借助于第三方的扩展,使用方法如下。 安装protoc编译器 第一步,安装Google

    阅读全文...

  • PHP老师没教过你的那些知识点

    Posted by : lon.y@qq.com on 2017年7月4日

    另类的写法有惊喜 我们在阅读某些源代码的时候会发现有一种另类的写法,比如 //异常写法 if(false == $result) //正常写法 if($result == false) 其实这是一种很聪明的写法,它可以很大程度上杜绝手误造成的严重bug。 假如我们在正常方法中把 == 误写成 = ,那么if($result = false) 就会恒定返回true,导致在实际运行中产生未知的Bug,如果使用异常的写法出现手误变成时if(false = $fa

    阅读全文...

  • 一个高级PHP工程师所应该具备的

    Posted by : lon.y@qq.com on 2017年7月4日

    初次接触PHP,就为其美所折服,于是一发不可收拾。 很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助。 一、平静的心态 和所有程序员一样,要写一手好的程序,没有好的心态是不行的。 遇事不可急躁,不可轻言放弃。 在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有

    阅读全文...

  • PHP 源码阅读:explode 和 implode 函数

    Posted by : lon.y@qq.com on 2017年7月4日

    explode 和 implode 函数主要用作字符串和数组间转换的操作,比如获取一段参数后根据某个字符分割字符串,或者将一个数组的结果使用一个字符合并成一个字符串输出。在PHP中经常会用到这两个函数,因此有必要了解一下其原理。 explode array explode ( string $delimiter, string $string, [ , $limit ] ) 函数返回由字符串组成的数组,每个元素都是string的一个子串,被字符串$deli

    阅读全文...

  • 3 个主流 PHP 框架的性能测试

    Posted by : lon.y@qq.com on 2017年7月4日

    主流PHP框架性能非权威测试 作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情。 用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情。不过很多第三方功能不需要自己写,众多大牛已经给铺好路了。 用Laravel的话,传说写起来很爽扩展性也够,但是学习成本有点高,总不能给初级开发者半个月的时间去学习框架吧。而且据说江湖人士透漏,Laravel性能不怎么样,文档也并不是

    阅读全文...

  • PHP 实战之设计模式:PHP 中的设计模式

    Posted by : lon.y@qq.com on 2017年7月4日

    本文为翻译文章 原文地址:Design Patterns in PHP 如果打算学习PHP的童鞋可以参考下笔者的编程语言学习知识体系要点列表 本文主要讨论下Web开发中,准确而言,是PHP开发中的相关的设计模式及其应用。有经验的开发者肯定对于设计模式非常熟悉,但是本文主要是针对那 些初级的开发者。首先我们要搞清楚到底什么是设计模式,设计模式并不是一种用来解释的模式,它们并不是像链表那样的常见的数据结构,也不是某种特殊的应用 或者框架设计。事实上,设计模式的

    阅读全文...

  • 10个值得深思的PHP面试问题

    Posted by : lon.y@qq.com on 2017年7月4日

    Q1 第一个问题关于弱类型 $str1 = 'yabadabadoo'; $str2 = 'yaba'; if (strpos($str1,$str2)) { echo "\"" . $str1 . "\" contains \"" . $str2 . "\""; } else { echo "\"" . $str1 . "\" does not contain \"" . $str2 . "\""; } 正确运行的输出结果: "yabadabadoo"

    阅读全文...

  • PHP中“==”运算符的安全问题

    Posted by : lon.y@qq.com on 2017年7月4日

    前言 PHP是一种通用的开源脚本语言,它的语法混合了C,Java,以及Perl等优秀语言的语法。除此之外,它还提供了大量的函数库可供开发人员使用。但是,如果使用不当,PHP也会给应用程序带来非常大的安全风险。 在这篇文章中,我们将会对PHP应用程序中经常会出现的一些问题进行深入地分析,尤其是当我们使用“==”(比较运算符)来进行字符串比较时,可能会出现的一些安全问题。虽然近期有很多文章都围绕着这一话题进行过一些探讨,但我决定从“黑盒测试”的角度出发,讨论一

    阅读全文...

  • 趣文:如果编程语言是女人(新编版)

    Posted by : lon.y@qq.com on 2017年7月4日

    Ruby 是一个略显丰满的女孩,但其令人窒息的甜蜜面容绝对会成为你一生的梦想,然而,当你最终得到了她,她却开始迅速发胖,你开始认识到了她华丽外表下所有恶劣的性格缺陷。你坚持认为事情会有好转,但事实却不是这样,你最终不得不苦恼的把所有时间都花在寻找新的能让她保持高兴的事情上。 Java 是一个过于精于计算的生意场上的女人,她会盲目的遵循各种习惯风俗——不论它们是如何的相互矛盾和荒谬。虽然相貌平平,但你和她出门或做任何事情前都必须经过各种的礼节、复杂的装饰、规

    阅读全文...

  • PHP 框架 Laravel 作者的工作日常

    Posted by : lon.y@qq.com on 2017年7月4日

    【导读】:PHP Web 框架 Laravel 作者 Taylor Otwell 介绍自己的工作日常,办公配置,开发工具等等。 经常有人问我有关日常工作的问题,例如我是如何管理时间的,我常用的工具有哪些,我喜欢用什么编辑器和配色方案。在这里,我将借这篇文章尝试回答这些问题。 普通的一天 我在家办公,全职从事 Laravel 的工作。通常早八点之前就到办公室了,第一件事就是回复昨晚收到的所有来自 Forge、Envoyer 和 Spark 的客户邮件,大约

    阅读全文...