风雪之隅

PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 - 左手代码 右手诗

Latest articles

一个关于if else容易迷惑的问题

这个本来是之前在微博上有个同学说他经常用来面试别人,大概是说,对于如下代码,你觉得会输出啥: $a = true; if ($a) { echo “true”; } else lable: { echo “false”; } 当时没想写,今天中午又有人问我,我想那就介绍下这个原因吧.

PHP 8新特性之JIT简介

PHP8 alpha1已经在昨天发布,相信关于JIT是大家最关心的,它到底怎么用,有什么要注意的,以及性能提升到底咋样?

使用SSE2指令高效实现strtolower

PHP的类名,函数,方法名是不区分大小写的,也就是说无论你怎么定义函数名,实际上在引擎层面查找的时候都是会统一转换成小写形式来做的。 也就是说strtolower的应用是非常普遍的。 当然,PHP也做了很多的设计来避免对字符串做过多的字符串小写操作,比如如果我们在PHP代码中写下: CamelFunc(); 这样的函数调用的时候, PHP会在编译时刻就把CamelFunc全部小写,然后存储在原始字面量之后(PHP-5.4 literals)。

PHP8新特性之Attributes

PHP8的Alpha版本,过几天就要发布了,其中包含了不少的新特性,今天呢,我想谈谈Attributes,为啥呢, 是昨天我看到很多群在转发一个文章,叫做《理解PHP8中的Attributes》,说实在的,这篇文章应该是直接从英文翻译过来的,写的晦涩难懂,很多同学看完以后表示,看的一头雾水,不知道在说啥。 于是我想,就用一篇文章来简单说说这是个啥。

使用OSC52实现iTerm2远程pbcopy

最高效的码字方式,一定有一个特点,那就是手指离开键盘的次数尽可能的少。 并且手指码字的时候的在键盘的跨度尽可能的短, 这也是我认识不少老牌程序员用Vim也不用ESC, 而是使用ctrl+[, 甚至还有这: 从而避免手指在键盘上的跨越幅度太大。

Yaf 3.2.0发布

经过俩周多的重构,终于一咬牙今天发布了Yaf 3.2.0 beta, 要不然一直在想各种可能的优化点,不停的写,没完了, :) 这次的重构的最初出发点是把原来的Yaf对象从PHP的原生对象,改成了自定义的对象:

使用PHP Socket开发Yar TCP服务

Yar支持HTTP和TCP俩种Transporter, HTTP的是基于CURL,PHP中的Yar默认就是走的HTTP Transporter, 这个大家应该都不陌生, 但是基于TCP的, 可能大家会用的少一些。 今天我们尝试用PHP来写一个TCP的Server,来介绍下如何实现对Yar RPC协议的处理, 这个例子可以方便的结合Swoole等异步PHP框架,实现一个高性能的Yar TCP Server。 这个过程中, 会让大家了解Yar的RPC通信协议,以及捎带了解下Socket编程。

我开源项目的Windows安装包下载

一直以来,我的PHP开源项目怎么构建Windows的dll,都让我无比头疼。 但是还是有很多用户是在Windows上跑我的项目,我也实属无奈。。。 于是这几天,硬着头皮搞了下github上的appveyor,  简直是噩梦 :< Anyway, 我终于搞定了: 下载地址是:ya系列windows安装包

Yac 2.1 升级说明

Yac (Yet Another cache)也是之前我在微博的时候开发的一个为PHP使用的,Lock-free, Shared Memory, User Data Cache,用来替代当时微博在PHP机器上装的本地Memcache, 因为当时的需求特点,最初做了完全无锁的设计,但是这样有一个隐患就是用户有可能获得“错误”的数据,虽然之前的测试概率非常非常低。 关于Yac的设计,可以参考我7年前写的Yac (Yet Another Cache) - 无锁共享内存Cache。 作为我的Ya全家桶的重要一员, 在我优化完一轮Yaf, Yar, Yaconf以后,Yac当然也不能少了。

深入理解PHP7内核之OBJECT

前面的几篇,我系统的介绍了PHP7以后的ZVAL, Hashtable, 以及Reference, 今天我来讲讲Object(对象)的一些变化。 按照惯例,我先带大家回顾下PHP5时的zend_object(此部分内容之前的文章中也有涉及,如果熟悉可以跳过), 之前如果有兴趣也可以看看我10年前写的深入理解PHP原理之对象.

Discover, share and read the best on the web

Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters! Get unfiltered news feeds or filter them to your liking.

Get Inoreader
Inoreader - Subscribe to RSS Feeds, Blogs, Podcasts, Twitter searches, Facebook pages, even Email Newsletters!