Tag: 操作码

不直观的expression评估与增量

对于下面的代码 <?php $a=1; $b=$a++; var_dump($b); $a=1; $b=$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a+$a++; var_dump($b); $a=1; $b=$a+$a+$a+$a+$a++; var_dump($b); 我获得了这个结果: int(1) int(3) int(3) int(4) int(5) 我预计1,2,3,4,5而不是1,3,3,4,5。 为什么在$a=1; $b=$a+$a++; $a=1; $b=$a+$a++; 我们获得$b=3 ? PHP 7.1.5-1 + deb.sury.org〜xenial + 1(cli)(built:May 11 2017 14:07:52)(NTS)

如何获得PHP的操作码?

<?php $show_value = 123; echo 'sing_quote'.$show_value; echo "double_quote{$show_value}"; ?> 它的操作码是: 1: <?php 2: $show_value = 123; 0 ASSIGN !0, 123 3: echo 'sing_quote'.$show_value; 1 CONCAT 'sing_quote', !0 =>RES[~1] 2 ECHO ~1 4: echo "double_quote{$show_value}"; 3 ADD_STRING 'double_quote' =>RES[~2] 4 ADD_VAR ~2, !0 =>RES[~2] 5 ECHO ~2 6 RETURN 1

将机器代码翻译成LLVM IR(将X86_64.X86.ARM反汇编/重组成LLVM位代码)

我想将X86_64,x86,ARM可执行文件翻译成LLVM IR(反汇编)。 你build议什么解决scheme?