php 8 中空安全运算符是如何工作的?

How does null safe operator works in php 8?

PHP 在 PHP8 中引入了 null 运算符。使用 Null 运算符有什么好处。它是如何工作的?任何启发我知识的人都会很高兴。

它的作用肯定在博客post中有解释,你发现它在

它是如何工作的最好用一个简单的字节码转储来解释:

 L3    #0     JMP_NULL                $null                J5                   @1
 L3    #1     FETCH_OBJ_R             $null                "optional"           ~0
 L3    #2     JMP_NULL                ~0                   J5                   @1
 L3    #3     INIT_METHOD_CALL        ~0                   "maybenull"  
 L3    #4     DO_FCALL  
 L4    #5     RETURN<-1>              1   

?-> 的任何出现都由属性提取或方法调用表示,但前面带有 JMP_NULL,这将简单地跳过表达式的其余部分。