PHP7 部分opcode的含义?

tcsecchen
  • 29

在PHP7中增加了新的opcode,在php.net上查不到,我去看了php7的源码,但是很难理解,所以请教大神们几个opcode的含义和操作,具体opcode是以下几个:
1.ZEND_FAST_CONCAT ,看了源码发现这个比之前的ZEND_CONCAT多了很多代码,但是具体功能没看出什么区别。ZEND_FAST_CONCAT和ZEND_CONCAT是什么区别呢?
2.ZEND_ROPE_END 这个是干什么的呢?这个没有看懂

回复
阅读 2.8k
1 个回答
郭新华
  • 35

ZEND_FAST_CONCAT是类似这种代码"select * from table where id={$id}",用于简单的快速连接字符串。

ZEND_ROPE_*是一组opcodeZEND_ROPE_INITZEND_ROPE_ADDZEND_ROPE_END,也用于连接字符串。类似于这种代码"select * from table where id={$id} order by id desc"。在$id之后还有literal的常量字符串要连接。执行完ENDopcode后一个字符串也就连接完了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏