Skip to content

Instantly share code, notes, and snippets.

@cspray
Created July 27, 2012 22:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cspray/3190798 to your computer and use it in GitHub Desktop.
Save cspray/3190798 to your computer and use it in GitHub Desktop.
Opcodes for else if versus elseif
<?php
if (false === true)
{}
else if (true === false)
{}
else
{}
?>
number of ops:  9
compiled vars:  none
line     # *  op                           fetch          ext  return  operands
---------------------------------------------------------------------------------
   2     0  >   EXT_STMT                                                 
         1      IS_IDENTICAL                                     ~0      false, true
   3     2    > JMPZ                                                     ~0, ->4
         3  > > JMP                                                      ->7
   4     4  >   IS_IDENTICAL                                     ~1      true, false
   5     5    > JMPZ                                                     ~1, ->7
         6  > > JMP                                                      ->7
   8     7  >   EXT_STMT                                                 
         8    > RETURN                                                   1
<?php
if (false === true)
{}
elseif (true === false)
{}
else
{}
?>
number of ops:  9
compiled vars:  none
line     # *  op                           fetch          ext  return  operands
---------------------------------------------------------------------------------
   2     0  >   EXT_STMT                                                 
         1      IS_IDENTICAL                                     ~0      false, true
   3     2    > JMPZ                                                     ~0, ->4
         3  > > JMP                                                      ->7
   4     4  >   IS_IDENTICAL                                     ~1      true, false
         5    > JMPZ                                                     ~1, ->7
   5     6  > > JMP                                                      ->7
   8     7  >   EXT_STMT                                                 
         8    > RETURN                                                   1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment