Broke opcode example code into multiple files, for easier maintenance.

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@323545 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Justin Martin 2012-02-25 22:48:31 +00:00
parent 3edfaa7042
commit cc98ddbbb0
137 changed files with 9496 additions and 9087 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add-array-element">
<title>ADD_ARRAY_ELEMENT</title>
<section xml:id="internals2.opcodes.add-array-element.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Add elem-value as an element to array-value
* opcode number: 72
*/
$a = array(1,2,3);
print_r($a);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.add-array-element.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry>'print_r'</entry>
</row>
<row>
<entry>8</entry><entry>6</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add-char">
<title>ADD_CHAR</title>
<section xml:id="internals2.opcodes.add-char.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* add character value2 to string value1 and store in result
* opcode number: 54
*/
echo "hello\ world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.add-char.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'hello%5C+world'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add-interface">
<title>ADD_INTERFACE</title>
<section xml:id="internals2.opcodes.add-interface.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 144
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add-string">
<title>ADD_STRING</title>
<section xml:id="internals2.opcodes.add-string.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* add string value2 to string value2 and store in result
* opcode number: 55
*/
echo "hello$a world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.add-string.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'hello'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_VAR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,'+world'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add-var">
<title>ADD_VAR</title>
<section xml:id="internals2.opcodes.add-var.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* add contents of variable in value2 to string value1 and store in result
* opcode number: 56
*/
echo "hello$a world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.add-var.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'hello'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_VAR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,'+world'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.add">
<title>ADD</title>
<section xml:id="internals2.opcodes.add.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Adds "value1" to "value2" and stores the result into "result".
* opcode number: 1
*/
echo 1 + 2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.add.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ADD</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-add">
<title>ASSIGN_ADD</title>
<section xml:id="internals2.opcodes.assign-add.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Add value1 to value2 and store in variable indicated by value1
* opcode number: 23
*/
$a+=3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-add.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_ADD</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-bw-and">
<title>ASSIGN_BW_AND</title>
<section xml:id="internals2.opcodes.assign-bw-and.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Performs binary AND on result and value1 and stores in variable indicated by result.
* opcode number: 32
*/
$a &= 64;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-bw-and.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_BW_AND</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,64</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-bw-or">
<title>ASSIGN_BW_OR</title>
<section xml:id="internals2.opcodes.assign-bw-or.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Performs binary OR on result and value1 and stores in variable indicated by result.
* opcode number: 31
*/
$a |= 64;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-bw-or.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_BW_OR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,64</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-bw-xor">
<title>ASSIGN_BW_XOR</title>
<section xml:id="internals2.opcodes.assign-bw-xor.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Performs binary XOR on result and value1and stores in variable indicated by result.
* opcode number: 33
*/
$a ^= 64;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-bw-xor.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_BW_XOR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,64</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-concat">
<title>ASSIGN_CONCAT</title>
<section xml:id="internals2.opcodes.assign-concat.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Concats string values result and value1 and store in variable indicated by result
* opcode number: 30
*/
$a .= 'z';
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-concat.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_CONCAT</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'z'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-dim">
<title>ASSIGN_DIM</title>
<section xml:id="internals2.opcodes.assign-dim.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 147
*/
$b = 1;
$a[1][2] = $b;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-dim.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$b, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>FETCH_DIM_W</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>!1,1</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ZEND_ASSIGN_DIM</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$1,2</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$3</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-div">
<title>ASSIGN_DIV</title>
<section xml:id="internals2.opcodes.assign-div.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Divide result by value1and store in variable indicated by result.
* opcode number: 26
*/
$a/=3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-div.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_DIV</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-mod">
<title>ASSIGN_MOD</title>
<section xml:id="internals2.opcodes.assign-mod.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Perform result mod value1 and store in variable indicated by result
* opcode number: 27
*/
$a %= 3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-mod.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_MOD</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-mul">
<title>ASSIGN_MUL</title>
<section xml:id="internals2.opcodes.assign-mul.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Multiply result by value1 and store in variable indicated by result
* opcode number: 25
*/
$a*=3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-mul.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_MUL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-obj">
<title>ASSIGN_OBJ</title>
<section xml:id="internals2.opcodes.assign-obj.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 136
*/
$obj->a = $otherobj;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-obj.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj, !1=$otherobj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_ASSIGN_OBJ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'a'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-ref">
<title>ASSIGN_REF</title>
<section xml:id="internals2.opcodes.assign-ref.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* indicates that variable indicated by value1 is to be treated in the global scope for the remainder of the current scope.
* opcode number: 39
*/
global $a;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-ref.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>FETCH_W</entry><entry>globallock</entry>
<entry></entry><entry>$0</entry>
<entry>'a'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ASSIGN_REF</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-sl">
<title>ASSIGN_SL</title>
<section xml:id="internals2.opcodes.assign-sl.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Shift result by value1 bits to left and store in variable indicated by result
* opcode number: 28
*/
$a <<= 3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-sl.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_SL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-sr">
<title>ASSIGN_SR</title>
<section xml:id="internals2.opcodes.assign-sr.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Shift result by value1 bits to right and store in variable indicated by result
* opcode number: 29
*/
$a >>= 3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-sr.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_SR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign-sub">
<title>ASSIGN_SUB</title>
<section xml:id="internals2.opcodes.assign-sub.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Subtract value1 from value2 and store in variable indicated by value1
* opcode number: 24
*/
$a-=3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign-sub.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN_SUB</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,3</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.assign">
<title>ASSIGN</title>
<section xml:id="internals2.opcodes.assign.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* assigns value1 to result
* opcode number: 38
*/
$a=1;
$a='a';
$a=new A();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.assign.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'a'</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:2</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>:2</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$3</entry>
</row>
<row>
<entry>9</entry><entry>6</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.begin-silence">
<title>BEGIN_SILENCE</title>
<section xml:id="internals2.opcodes.begin-silence.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* prepare to perform function call without displaying error messages
* opcode number: 57
*/
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("error:'$php_errormsg'");
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.begin-silence.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$my_file, !1=$php_errormsg </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>7</entry><entry>0</entry>
<entry>BEGIN_SILENCE</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>SEND_VAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'non_existent_file'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry>'file'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>END_SILENCE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>!0,$1</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>JMPNZ_EX</entry><entry></entry>
<entry></entry><entry>~3</entry>
<entry>$2,->11</entry>
</row>
<row>
<entry>8</entry><entry>6</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>'error%3A%27'</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ADD_VAR</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>~4,!1</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>ADD_CHAR</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>~4,39</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>EXIT</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~4</entry>
</row>
<row>
<entry></entry><entry>10</entry>
<entry>BOOL</entry><entry></entry>
<entry></entry><entry>~3</entry>
<entry>true</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~3</entry>
</row>
<row>
<entry>9</entry><entry>12</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bool-not">
<title>BOOL_NOT</title>
<section xml:id="internals2.opcodes.bool-not.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Boolean (logical) not of "value"
* opcode number: 13
*/
echo !1;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bool-not.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BOOL_NOT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bool-xor">
<title>BOOL_XOR</title>
<section xml:id="internals2.opcodes.bool-xor.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Boolean (logical) xor of value1
* opcode number: 14
*/
echo 1 xor 2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bool-xor.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BOOL_XOR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bool">
<title>BOOL</title>
<section xml:id="internals2.opcodes.bool.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* convert value1 to boolean and store in result??????????
* opcode number: 52
*/
if (1 || 2 || 1) echo "foo";
//$a = true;
//if($a) echo "foo";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bool.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>JMPNZ_EX</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,->2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>BOOL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>JMPNZ_EX</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,->4</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>BOOL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0,->7</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'foo'</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->7</entry>
</row>
<row>
<entry>9</entry><entry>7</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.brk">
<title>BRK</title>
<section xml:id="internals2.opcodes.brk.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* ??? End of a case block exists the current switch block. Followed by JMP?
* opcode number: 50
*/
$x = 0;
while(1) {
if($x == 0) break;
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.brk.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,0</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1,->7</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>IS_EQUAL</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1,->6</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>BRK</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->6</entry>
</row>
<row>
<entry>9</entry><entry>6</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->1</entry>
</row>
<row>
<entry>10</entry><entry>7</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bw-and">
<title>BW_AND</title>
<section xml:id="internals2.opcodes.bw-and.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Bit-wise and of value1 and value2
* opcode number: 10
*/
echo 1&2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bw-and.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BW_AND</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bw-not">
<title>BW_NOT</title>
<section xml:id="internals2.opcodes.bw-not.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Bit-wise not of "value"
* opcode number: 12
*/
echo ~15;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bw-not.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BW_NOT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>15</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bw-or">
<title>BW_OR</title>
<section xml:id="internals2.opcodes.bw-or.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Bit-wise or of value1 and value2
* opcode number: 9
*/
echo 1|2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bw-or.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BW_OR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.bw-xor">
<title>BW_XOR</title>
<section xml:id="internals2.opcodes.bw-xor.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Bit-wise xor of value1 and value2
* opcode number: 11
*/
echo 1^2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.bw-xor.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BW_XOR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

150
internals2/opcodes/case.xml Normal file
View file

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.case">
<title>CASE</title>
<section xml:id="internals2.opcodes.case.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Set result to true if value1 equals value2. The value2 must be a constant value?
* opcode number: 48
*/
$i=0;
switch ($i) {
case 0:
echo "i=0";
break;
case 1:
echo "i=1";
break;
case 2:
echo "i=2";
break;
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.case.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$i </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,0</entry>
</row>
<row>
<entry>8</entry><entry>1</entry>
<entry>CASE</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1,->6</entry>
</row>
<row>
<entry>9</entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'i%3D0'</entry>
</row>
<row>
<entry>10</entry><entry>4</entry>
<entry>BRK</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>11</entry><entry>5</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->8</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>CASE</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>!0,1</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1,->11</entry>
</row>
<row>
<entry>12</entry><entry>8</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'i%3D1'</entry>
</row>
<row>
<entry>13</entry><entry>9</entry>
<entry>BRK</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>14</entry><entry>10</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->13</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>CASE</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>!0,2</entry>
</row>
<row>
<entry></entry><entry>12</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1,->16</entry>
</row>
<row>
<entry>15</entry><entry>13</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'i%3D2'</entry>
</row>
<row>
<entry>16</entry><entry>14</entry>
<entry>BRK</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>17</entry><entry>15</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->16</entry>
</row>
<row>
<entry>18</entry><entry>16</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.cast">
<title>CAST</title>
<section xml:id="internals2.opcodes.cast.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* casts value1 as type value2 (?? Not certain about arguments ??)
* opcode number: 21
*/
echo (int)1;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.cast.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>CAST</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.catch">
<title>CATCH</title>
<section xml:id="internals2.opcodes.catch.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 107
*/
try {
$error = 'Always throw this error';
throw new Exception($error);
// Code following an exception is not executed.
echo 'Never executed';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.catch.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$error, !1=$e </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>7</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'Always+throw+this+error'</entry>
</row>
<row>
<entry>8</entry><entry>1</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:1</entry>
<entry>'Exception'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>:1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ZEND_THROW</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry>$2</entry>
</row>
<row>
<entry>11</entry><entry>6</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'Never+executed'</entry>
</row>
<row>
<entry>13</entry><entry>7</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->15</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:4</entry>
<entry>'Exception'</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>ZEND_CATCH</entry><entry></entry>
<entry>15</entry><entry></entry>
<entry>$4,!1</entry>
</row>
<row>
<entry>14</entry><entry>10</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'Caught+exception%3A+'</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>ZEND_INIT_METHOD_CALL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'getMessage'</entry>
</row>
<row>
<entry></entry><entry>12</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>13</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$6</entry>
</row>
<row>
<entry></entry><entry>14</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'%0A'</entry>
</row>
<row>
<entry>18</entry><entry>15</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'Hello+World'</entry>
</row>
<row>
<entry>19</entry><entry>16</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.clone">
<title>CLONE</title>
<section xml:id="internals2.opcodes.clone.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 110
*/
$obj = new A();
$copy = clone $obj;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.clone.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj, !1=$copy </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ZEND_CLONE</entry><entry></entry>
<entry></entry><entry>$4</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$4</entry>
</row>
<row>
<entry>8</entry><entry>6</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.concat">
<title>CONCAT</title>
<section xml:id="internals2.opcodes.concat.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Concats string values string1 and string2
* opcode number: 8
*/
echo "hello" . "world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.concat.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>CONCAT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'hello','world'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.cont">
<title>CONT</title>
<section xml:id="internals2.opcodes.cont.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 51
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.declare-class">
<title>DECLARE_CLASS</title>
<section xml:id="internals2.opcodes.declare-class.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Declare a class with the name of class-name as the implementation specified by ID.
* opcode number: 139
*/
class A {
function methodA(){
echo "hello world";
}
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.declare-class.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>11</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: methodA</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>8</entry><entry>0</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'hello+world'</entry>
</row>
<row>
<entry>9</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.declare-const">
<title>DECLARE_CONST</title>
<section xml:id="internals2.opcodes.declare-const.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 143
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.declare-function">
<title>DECLARE_FUNCTION</title>
<section xml:id="internals2.opcodes.declare-function.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 141
*/
class A{
function funcA(){
}
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.declare-function.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>10</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: funcA</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>8</entry><entry>0</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.declare-inherited-class-delayed">
<title>DECLARE_INHERITED_CLASS_DELAYED</title>
<section xml:id="internals2.opcodes.declare-inherited-class-delayed.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 145
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.declare-inherited-class">
<title>DECLARE_INHERITED_CLASS</title>
<section xml:id="internals2.opcodes.declare-inherited-class.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 140
*/
if($b){
class Foo {
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo {
public function fooStatic() {
echo parent::$my_static;
}
}
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.declare-inherited-class.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$b </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,->5</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>ZEND_DECLARE_CLASS</entry><entry></entry>
<entry></entry><entry>$0</entry>
<entry>'%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'</entry>
</row>
<row>
<entry>14</entry><entry>2</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:1</entry>
<entry>'Foo'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ZEND_DECLARE_INHERITED_CLASS</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>'%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'</entry>
</row>
<row>
<entry>19</entry><entry>4</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->5</entry>
</row>
<row>
<entry>20</entry><entry>5</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: staticValue</simpara>
<simpara>Compiled variables: !0=$my_static </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>10</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>FETCH_R</entry><entry>staticmember</entry>
<entry></entry><entry>$1</entry>
<entry>'my_static'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$1</entry>
</row>
<row>
<entry>11</entry><entry>3</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: fooStatic</simpara>
<simpara>Compiled variables: !0=$my_static </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>16</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>FETCH_R</entry><entry>staticmember</entry>
<entry></entry><entry>$1</entry>
<entry>'my_static'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$1</entry>
</row>
<row>
<entry>17</entry><entry>3</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.div">
<title>DIV</title>
<section xml:id="internals2.opcodes.div.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Divides "value1" by "value2" and stores the result into "result".
* opcode number: 4
*/
echo 6/3;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.div.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>DIV</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>6,3</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.do-fcall-by-name">
<title>DO_FCALL_BY_NAME</title>
<section xml:id="internals2.opcodes.do-fcall-by-name.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Call a function by name. Following INIT_FCALL_BY_NAME and multiple SEND_VAL, SEND_VAR or SEND_REF.
* opcode number: 61
*/
$x = 'phpinfo';
$a = $x();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.do-fcall-by-name.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'phpinfo'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>INIT_FCALL_BY_NAME</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$1</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.do-fcall">
<title>DO_FCALL</title>
<section xml:id="internals2.opcodes.do-fcall.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Call a function. Following multiple SEND_VAL, SEND_VAR or SEND_REF.
* opcode number: 60
*/
$a = phpinfo();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.do-fcall.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry>'phpinfo'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.echo">
<title>ECHO</title>
<section xml:id="internals2.opcodes.echo.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Dump text
* opcode number: 40
*/
echo "hello world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.echo.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'hello+world'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.end-silence">
<title>END_SILENCE</title>
<section xml:id="internals2.opcodes.end-silence.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* no longer surpress error messages
* opcode number: 58
*/
$my_file = @file ('non_existent_file') or
die ("error:'$php_errormsg'");
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.end-silence.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$my_file, !1=$php_errormsg </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BEGIN_SILENCE</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>SEND_VAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'non_existent_file'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry>'file'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>END_SILENCE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>!0,$1</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>JMPNZ_EX</entry><entry></entry>
<entry></entry><entry>~3</entry>
<entry>$2,->11</entry>
</row>
<row>
<entry>7</entry><entry>6</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>'error%3A%27'</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ADD_VAR</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>~4,!1</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>ADD_CHAR</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>~4,39</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>EXIT</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~4</entry>
</row>
<row>
<entry></entry><entry>10</entry>
<entry>BOOL</entry><entry></entry>
<entry></entry><entry>~3</entry>
<entry>true</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~3</entry>
</row>
<row>
<entry>8</entry><entry>12</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.exit">
<title>EXIT</title>
<section xml:id="internals2.opcodes.exit.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Exit running after dumping "message".
* opcode number: 79
*/
die("foobar");
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.exit.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>EXIT</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'foobar'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.ext-fcall-begin">
<title>EXT_FCALL_BEGIN</title>
<section xml:id="internals2.opcodes.ext-fcall-begin.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 102
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.ext-fcall-end">
<title>EXT_FCALL_END</title>
<section xml:id="internals2.opcodes.ext-fcall-end.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 103
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.ext-nop">
<title>EXT_NOP</title>
<section xml:id="internals2.opcodes.ext-nop.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 104
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.ext-stmt">
<title>EXT_STMT</title>
<section xml:id="internals2.opcodes.ext-stmt.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 101
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fe-fetch">
<title>FE_FETCH</title>
<section xml:id="internals2.opcodes.fe-fetch.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch an element from iterator. If no element is available, jump to address. Followed by OP_DATA?
* opcode number: 78
*/
$a = array(1,2,3);
foreach($a as $num){
print $num;
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fe-fetch.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a, !1=$num </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>FE_RESET</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>!0,->11</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>FE_FETCH</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>$2,->11</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$3</entry>
</row>
<row>
<entry>8</entry><entry>8</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~5</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~5</entry>
</row>
<row>
<entry>9</entry><entry>10</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->5</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>SWITCH_FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$2</entry>
</row>
<row>
<entry>10</entry><entry>12</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fe-reset">
<title>FE_RESET</title>
<section xml:id="internals2.opcodes.fe-reset.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Initialize an iterator on array-value. If the array is empty, jump to address. Followed by FE_FETCH.
* opcode number: 77
*/
$a = array(1,2,3);
foreach($a as $num){
print $num;
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fe-reset.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a, !1=$num </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>FE_RESET</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>!0,->11</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>FE_FETCH</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>$2,->11</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$3</entry>
</row>
<row>
<entry>8</entry><entry>8</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~5</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~5</entry>
</row>
<row>
<entry>9</entry><entry>10</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->5</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>SWITCH_FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$2</entry>
</row>
<row>
<entry>10</entry><entry>12</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-class">
<title>FETCH_CLASS</title>
<section xml:id="internals2.opcodes.fetch-class.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 109
*/
$obj = new A();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-class.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-constant">
<title>FETCH_CONSTANT</title>
<section xml:id="internals2.opcodes.fetch-constant.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the constant value bound to the specified name (name) and stores it into a variable (result).
* opcode number: 99
*/
define("FOO", "something");
echo FOO;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-constant.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>SEND_VAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'FOO'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>SEND_VAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'something'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>2</entry><entry></entry>
<entry>'define'</entry>
</row>
<row>
<entry>7</entry><entry>3</entry>
<entry>FETCH_CONSTANT</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>'FOO'</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-func-arg">
<title>FETCH_DIM_FUNC_ARG</title>
<section xml:id="internals2.opcodes.fetch-dim-func-arg.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 93
*/
function foo(&$x)
{
print($x);
}
$x = array(0, 1, 2, 3, 4, 5);
$z = "foo";
$z($x[0]);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-dim-func-arg.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$z </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>7</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>12</entry><entry>1</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>4</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>5</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>13</entry><entry>8</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'foo'</entry>
</row>
<row>
<entry>15</entry><entry>9</entry>
<entry>INIT_FCALL_BY_NAME</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>10</entry>
<entry>FETCH_DIM_FUNC_ARG</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$3</entry>
</row>
<row>
<entry></entry><entry>12</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>17</entry><entry>13</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: foo</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>7</entry><entry>0</entry>
<entry>RECV</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>9</entry><entry>1</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>10</entry><entry>3</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-is">
<title>FETCH_DIM_IS</title>
<section xml:id="internals2.opcodes.fetch-dim-is.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 90
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-r">
<title>FETCH_DIM_R</title>
<section xml:id="internals2.opcodes.fetch-dim-r.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the element at "index" in "array-value" to store it in "result". Read-only?
* opcode number: 81
*/
$x = array(1,2,3);
$a = 'x';
echo $$a[0];
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-dim-r.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>FETCH_DIM_R</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>!1,0</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>FETCH_R</entry><entry>local</entry>
<entry></entry><entry>$4</entry>
<entry>$3</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$4</entry>
</row>
<row>
<entry>9</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-rw">
<title>FETCH_DIM_RW</title>
<section xml:id="internals2.opcodes.fetch-dim-rw.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the element at "index" in "array-value" to store it in "result".
* opcode number: 87
*/
$x = array(1,2,3);
$a = 'x';
$$a[0]++;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-dim-rw.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>FETCH_DIM_R</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>!1,0</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>FETCH_RW</entry><entry>local</entry>
<entry></entry><entry>$4</entry>
<entry>$3</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>POST_INC</entry><entry></entry>
<entry></entry><entry>~5</entry>
<entry>$4</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~5</entry>
</row>
<row>
<entry>9</entry><entry>9</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-tmp-var">
<title>FETCH_DIM_TMP_VAR</title>
<section xml:id="internals2.opcodes.fetch-dim-tmp-var.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch an entry of an array from a temporal variable?
* opcode number: 98
*/
list($x) = array("X");
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-dim-tmp-var.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'X'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>FETCH_DIM_TMP_VAR</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>~0,0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-unset">
<title>FETCH_DIM_UNSET</title>
<section xml:id="internals2.opcodes.fetch-dim-unset.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch an entry of an array variable for the purpose of unset() operation.
* opcode number: 96
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-dim-w">
<title>FETCH_DIM_W</title>
<section xml:id="internals2.opcodes.fetch-dim-w.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the element at "index" in "array-value" to store it in "result". Write-only?
* opcode number: 84
*/
$a = 1;
while($a > 0){
$a = 0;
}
/*$input =array(1,2,3);
while (list($var,) = @each($input)){
unset($$var);
}*/
/*$a = array(1,2,3);
$x = 'a';
$$x[0] = 1;*/
/*while ($b = each($a)) {
print $b;
}*/
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-dim-w.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>IS_SMALLER</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>0,!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1,->5</entry>
</row>
<row>
<entry>8</entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,0</entry>
</row>
<row>
<entry>9</entry><entry>4</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->1</entry>
</row>
<row>
<entry>23</entry><entry>5</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-func-arg">
<title>FETCH_FUNC_ARG</title>
<section xml:id="internals2.opcodes.fetch-func-arg.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 92
*/
function foo($x)
{
}
$x = 1;
$y = "x";
$z = "foo";
$z($$y);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-func-arg.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$y, !2=$z </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>10</entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>11</entry><entry>2</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>12</entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!2,'foo'</entry>
</row>
<row>
<entry>14</entry><entry>4</entry>
<entry>INIT_FCALL_BY_NAME</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!2</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>FETCH_FUNC_ARG</entry><entry>local</entry>
<entry></entry><entry>$3</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$3</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>16</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: foo</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>RECV</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>8</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-is">
<title>FETCH_IS</title>
<section xml:id="internals2.opcodes.fetch-is.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value from variable which is to be used to test if it is set or not, through isset()/isempty().
* opcode number: 89
*/
echo isset($_SESSION['userid']);
echo isset($_SESSION['userid'][1]);
echo isset($_SESSION->prop->prop);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-is.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>FETCH_IS</entry><entry></entry>
<entry></entry><entry>$0</entry>
<entry>'_SESSION'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ZEND_ISSET_ISEMPTY_DIM_OBJ</entry><entry></entry>
<entry>1</entry><entry>~1</entry>
<entry>$0,'userid'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1</entry>
</row>
<row>
<entry>7</entry><entry>3</entry>
<entry>FETCH_IS</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>'_SESSION'</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>FETCH_DIM_IS</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>$2,'userid'</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ZEND_ISSET_ISEMPTY_DIM_OBJ</entry><entry></entry>
<entry>1</entry><entry>~4</entry>
<entry>$3,1</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~4</entry>
</row>
<row>
<entry>8</entry><entry>7</entry>
<entry>FETCH_IS</entry><entry></entry>
<entry></entry><entry>$5</entry>
<entry>'_SESSION'</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>FETCH_OBJ_IS</entry><entry></entry>
<entry></entry><entry>$6</entry>
<entry>$5,'prop'</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>ZEND_ISSET_ISEMPTY_PROP_OBJ</entry><entry></entry>
<entry></entry><entry>~7</entry>
<entry>$6,'prop'</entry>
</row>
<row>
<entry></entry><entry>10</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~7</entry>
</row>
<row>
<entry>9</entry><entry>11</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,217 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-func-arg">
<title>FETCH_OBJ_FUNC_ARG</title>
<section xml:id="internals2.opcodes.fetch-obj-func-arg.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 94
*/
include './classA.php';
function foo(&$x)
{
print($x);
}
$z = "foo";
$obj = new A();
print $obj->num;
$z($obj->num);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-obj-func-arg.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$z, !1=$obj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INCLUDE_OR_EVAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'.%2FclassA.php',INCLUDE</entry>
</row>
<row>
<entry>8</entry><entry>1</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>13</entry><entry>2</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'foo'</entry>
</row>
<row>
<entry>15</entry><entry>3</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:2</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$3</entry>
<entry>:2</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$3</entry>
</row>
<row>
<entry>16</entry><entry>7</entry>
<entry>FETCH_OBJ_R</entry><entry></entry>
<entry></entry><entry>$6</entry>
<entry>!1,'num'</entry>
</row>
<row>
<entry></entry><entry>8</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~7</entry>
<entry>$6</entry>
</row>
<row>
<entry></entry><entry>9</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~7</entry>
</row>
<row>
<entry>17</entry><entry>10</entry>
<entry>INIT_FCALL_BY_NAME</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>11</entry>
<entry>FETCH_OBJ_FUNC_ARG</entry><entry></entry>
<entry></entry><entry>$8</entry>
<entry>!1,'num'</entry>
</row>
<row>
<entry></entry><entry>12</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$8</entry>
</row>
<row>
<entry></entry><entry>13</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>19</entry><entry>14</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: foo</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>8</entry><entry>0</entry>
<entry>RECV</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>10</entry><entry>1</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>11</entry><entry>3</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: foo</simpara>
<simpara>Compiled variables: !0=$x </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>8</entry><entry>0</entry>
<entry>RECV</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>10</entry><entry>1</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>11</entry><entry>3</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-is">
<title>FETCH_OBJ_IS</title>
<section xml:id="internals2.opcodes.fetch-obj-is.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 91
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-r">
<title>FETCH_OBJ_R</title>
<section xml:id="internals2.opcodes.fetch-obj-r.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the "prop-name" property value of this object. Read-only?
* opcode number: 82
*/
$x = new A();
$a = 'x';
echo $$a->num;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-obj-r.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>FETCH_R</entry><entry>local</entry>
<entry></entry><entry>$5</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>FETCH_OBJ_R</entry><entry></entry>
<entry></entry><entry>$6</entry>
<entry>$5,'num'</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$6</entry>
</row>
<row>
<entry>9</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-rw">
<title>FETCH_OBJ_RW</title>
<section xml:id="internals2.opcodes.fetch-obj-rw.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the "prop-name" property value of this object.
* opcode number: 88
*/
$x = new A();
$a = 'x';
$$a->num++;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-obj-rw.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>FETCH_RW</entry><entry>local</entry>
<entry></entry><entry>$5</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ZEND_POST_INC_OBJ</entry><entry></entry>
<entry></entry><entry>~7</entry>
<entry>$5,'num'</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~7</entry>
</row>
<row>
<entry>9</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-unset">
<title>FETCH_OBJ_UNSET</title>
<section xml:id="internals2.opcodes.fetch-obj-unset.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch a property of an object variable for the purpose of unset() operation.
* opcode number: 97
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-obj-w">
<title>FETCH_OBJ_W</title>
<section xml:id="internals2.opcodes.fetch-obj-w.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the "prop-name" property value of this object. Write-only?
* opcode number: 85
*/
$x = new A();
$a = 'x';
$$a->num = 1;;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-obj-w.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>5</entry>
<entry>FETCH_W</entry><entry>local</entry>
<entry></entry><entry>$5</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>ZEND_ASSIGN_OBJ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$5,'num'</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
<row>
<entry>9</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-r">
<title>FETCH_R</title>
<section xml:id="internals2.opcodes.fetch-r.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the varible of "name" to assign it to a variable? Read-only?
* opcode number: 80
*/
$x = 1;
$a = 'x';
echo $$a;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-r.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>FETCH_R</entry><entry>local</entry>
<entry></entry><entry>$2</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$2</entry>
</row>
<row>
<entry>9</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-rw">
<title>FETCH_RW</title>
<section xml:id="internals2.opcodes.fetch-rw.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the varible of "name" to assign it to a variable?
* opcode number: 86
*/
$x = 1;
$a = 'x';
$$a++;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-rw.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>FETCH_RW</entry><entry>local</entry>
<entry></entry><entry>$2</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>POST_INC</entry><entry></entry>
<entry></entry><entry>~3</entry>
<entry>$2</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~3</entry>
</row>
<row>
<entry>9</entry><entry>5</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-unset">
<title>FETCH_UNSET</title>
<section xml:id="internals2.opcodes.fetch-unset.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch a variable for the purpose of unset() operation.
* opcode number: 95
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.fetch-w">
<title>FETCH_W</title>
<section xml:id="internals2.opcodes.fetch-w.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Fetch the value of the varible of "name" to assign it to a variable? Write-only?
* opcode number: 83
*/
$x = 1;
$a = 'x';
$$a = 2;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.fetch-w.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,1</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,'x'</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>FETCH_W</entry><entry>local</entry>
<entry></entry><entry>$2</entry>
<entry>!1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>$2,2</entry>
</row>
<row>
<entry>9</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.free">
<title>FREE</title>
<section xml:id="internals2.opcodes.free.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Release the allocated space of the value.
* opcode number: 70
*/
print "Hello World";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.free.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>PRINT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'Hello+World'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.goto">
<title>GOTO</title>
<section xml:id="internals2.opcodes.goto.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 100
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.handle-exception">
<title>HANDLE_EXCEPTION</title>
<section xml:id="internals2.opcodes.handle-exception.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 149
*/
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.handle-exception.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.include-or-eval">
<title>INCLUDE_OR_EVAL</title>
<section xml:id="internals2.opcodes.include-or-eval.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Include the file specified by filename and eval it.
* opcode number: 73
*/
include("test.php");
eval("test.php");
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.include-or-eval.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INCLUDE_OR_EVAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'test.php',INCLUDE</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>INCLUDE_OR_EVAL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'test.php',EVAL</entry>
</row>
<row>
<entry>8</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>2</entry><entry>0</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry>'phpinfo'</entry>
</row>
<row>
<entry>3</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-array">
<title>INIT_ARRAY</title>
<section xml:id="internals2.opcodes.init-array.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Allocate a new array with elem-value as the first element of the array. Followed by ADD_ARRAY_ELEMENT.
* opcode number: 71
*/
$a = array(1,2,3);
print_r($a);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.init-array.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>INIT_ARRAY</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_ARRAY_ELEMENT</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>3</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>SEND_VAR</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>DO_FCALL</entry><entry></entry>
<entry>1</entry><entry></entry>
<entry>'print_r'</entry>
</row>
<row>
<entry>8</entry><entry>6</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-fcall-by-name">
<title>INIT_FCALL_BY_NAME</title>
<section xml:id="internals2.opcodes.init-fcall-by-name.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* prepare for a function call to function value1
* opcode number: 59
*/
$x = 'phpinfo';
$a = $x();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.init-fcall-by-name.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$x, !1=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'phpinfo'</entry>
</row>
<row>
<entry>7</entry><entry>1</entry>
<entry>INIT_FCALL_BY_NAME</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!1,$1</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-method-call">
<title>INIT_METHOD_CALL</title>
<section xml:id="internals2.opcodes.init-method-call.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Prepare for a method call. Followed by DO_FCALL.
* opcode number: 112
*/
class A {
var $num;
function incrementNum(){
$num++;
}
}
$obj = new A();
$obj->incrementNum();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.init-method-call.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>13</entry><entry>1</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:1</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$2</entry>
<entry>:1</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$2</entry>
</row>
<row>
<entry>14</entry><entry>5</entry>
<entry>ZEND_INIT_METHOD_CALL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,'incrementNum'</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>16</entry><entry>7</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: incrementNum</simpara>
<simpara>Compiled variables: !0=$num </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>9</entry><entry>0</entry>
<entry>POST_INC</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>10</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-ns-fcall-by-name">
<title>INIT_NS_FCALL_BY_NAME</title>
<section xml:id="internals2.opcodes.init-ns-fcall-by-name.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 69
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-static-method-call">
<title>INIT_STATIC_METHOD_CALL</title>
<section xml:id="internals2.opcodes.init-static-method-call.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 113
*/
class Foo {
public static function aStaticMethod() {
echo "hello world\n";
}
}
Foo::aStaticMethod();
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.init-static-method-call.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>NOP</entry><entry></entry>
<entry></entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>12</entry><entry>1</entry>
<entry>ZEND_INIT_STATIC_METHOD_CALL</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'Foo','aStaticMethod'</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ZEND_OP_DATA</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'foo%3A%3Aastaticmethod'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry>13</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<simpara>Function name: aStaticMethod</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>8</entry><entry>0</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'hello+world%0A'</entry>
</row>
<row>
<entry>9</entry><entry>1</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.init-string">
<title>INIT_STRING</title>
<section xml:id="internals2.opcodes.init-string.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* appears to create a string variable in result
* opcode number: 53
*/
echo "hello$a world";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.init-string.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>'hello'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ADD_VAR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,!0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ADD_STRING</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>~0,'+world'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.instanceof">
<title>INSTANCEOF</title>
<section xml:id="internals2.opcodes.instanceof.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 138
*/
$obj = new A();
if ($obj instanceof A) {
echo 'A';
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.instanceof.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:4</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>ZEND_INSTANCEOF</entry><entry></entry>
<entry></entry><entry>~5</entry>
<entry>!0,$4</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~5,->9</entry>
</row>
<row>
<entry>9</entry><entry>7</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'A'</entry>
</row>
<row>
<entry>10</entry><entry>8</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->9</entry>
</row>
<row>
<entry>11</entry><entry>9</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-equal">
<title>IS_EQUAL</title>
<section xml:id="internals2.opcodes.is-equal.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* compares if value1 and value2 are equal
* opcode number: 17
*/
echo (1 == 1);
echo (1 == 'c');
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-equal.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_EQUAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>IS_EQUAL</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>1,'c'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-identical">
<title>IS_IDENTICAL</title>
<section xml:id="internals2.opcodes.is-identical.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Compares value1 and value2 to see if they are equal AND have the same type
* opcode number: 15
*/
echo (1===1);
echo (1==='a');
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-identical.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_IDENTICAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>IS_IDENTICAL</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>1,'a'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~1</entry>
</row>
<row>
<entry>8</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-not-equal">
<title>IS_NOT_EQUAL</title>
<section xml:id="internals2.opcodes.is-not-equal.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* compares if value1 and value2 are not equal
* opcode number: 18
*/
echo (1 != 1);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-not-equal.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_NOT_EQUAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-not-identical">
<title>IS_NOT_IDENTICAL</title>
<section xml:id="internals2.opcodes.is-not-identical.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* compares value1 and value2 to see if they are unequal or of different types
* opcode number: 16
*/
echo (1 !== 1);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-not-identical.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_NOT_IDENTICAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-smaller-or-equal">
<title>IS_SMALLER_OR_EQUAL</title>
<section xml:id="internals2.opcodes.is-smaller-or-equal.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* compares if value1 is less than or equal to value2
* opcode number: 20
*/
echo (1 >= 2);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-smaller-or-equal.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_SMALLER_OR_EQUAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>2,1</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.is-smaller">
<title>IS_SMALLER</title>
<section xml:id="internals2.opcodes.is-smaller.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* compares if value1 is less than value2
* opcode number: 19
*/
echo (1 < 2);
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.is-smaller.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_SMALLER</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0</entry>
</row>
<row>
<entry>7</entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.isset-isempty-dim-obj">
<title>ISSET_ISEMPTY_DIM_OBJ</title>
<section xml:id="internals2.opcodes.isset-isempty-dim-obj.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Tests if the entry of an array is set or not.
* opcode number: 115
*/
if(isset($a[0])) return 0;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.isset-isempty-dim-obj.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_ISSET_ISEMPTY_DIM_OBJ</entry><entry></entry>
<entry>1</entry><entry>~0</entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0,->4</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>0</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->4</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.isset-isempty-prop-obj">
<title>ISSET_ISEMPTY_PROP_OBJ</title>
<section xml:id="internals2.opcodes.isset-isempty-prop-obj.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 148
*/
$obj = new A();
if(empty($obj->num)) return 0;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.isset-isempty-prop-obj.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$obj </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
<entry></entry><entry>:0</entry>
<entry>'A'</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>NEW</entry><entry></entry>
<entry></entry><entry>$1</entry>
<entry>:0</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
<entry>0</entry><entry></entry>
<entry></entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,$1</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>ZEND_ISSET_ISEMPTY_PROP_OBJ</entry><entry></entry>
<entry></entry><entry>~4</entry>
<entry>!0,'num'</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~4,->8</entry>
</row>
<row>
<entry></entry><entry>6</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>0</entry>
</row>
<row>
<entry></entry><entry>7</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->8</entry>
</row>
<row>
<entry>8</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.isset-isempty-var">
<title>ISSET_ISEMPTY_VAR</title>
<section xml:id="internals2.opcodes.isset-isempty-var.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Tests if the value of a variable is set or not.
* opcode number: 114
*/
if(isset($a)){ return 0;}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.isset-isempty-var.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ZEND_ISSET_ISEMPTY_VAR</entry><entry></entry>
<entry>5</entry><entry>~0</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0,->4</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>0</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->4</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.jmp">
<title>JMP</title>
<section xml:id="internals2.opcodes.jmp.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
*
* opcode number: 42
* No sample PHP yet */
?>
]]>
</programlisting>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.jmpnz-ex">
<title>JMPNZ_EX</title>
<section xml:id="internals2.opcodes.jmpnz-ex.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Jump to the address if the xor of value1 and value2 is zero .. ???
* opcode number: 47
*/
if(1^2) return;
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.jmpnz-ex.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>BW_XOR</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>1,2</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0,->4</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>null</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->4</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.jmpnz">
<title>JMPNZ</title>
<section xml:id="internals2.opcodes.jmpnz.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Jump to the address if the value is not zero
* opcode number: 44
*/
for($i=0; $i<3; $i++){
echo "hi";
}
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.jmpnz.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$i </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>ASSIGN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>IS_SMALLER</entry><entry></entry>
<entry></entry><entry>~1</entry>
<entry>!0,3</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>JMPZNZ</entry><entry></entry>
<entry>6</entry><entry></entry>
<entry>~1,->8</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>POST_INC</entry><entry></entry>
<entry></entry><entry>~2</entry>
<entry>!0</entry>
</row>
<row>
<entry></entry><entry>4</entry>
<entry>FREE</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~2</entry>
</row>
<row>
<entry></entry><entry>5</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->1</entry>
</row>
<row>
<entry>7</entry><entry>6</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'hi'</entry>
</row>
<row>
<entry>8</entry><entry>7</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->3</entry>
</row>
<row>
<entry>9</entry><entry>8</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.jmpz-ex">
<title>JMPZ_EX</title>
<section xml:id="internals2.opcodes.jmpz-ex.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Jump to the address if the xor of value1 and value2 is zero .. ???
* opcode number: 46
*/
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.jmpz-ex.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: none </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>7</entry><entry>0</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<section xml:id="internals2.opcodes.jmpz">
<title>JMPZ</title>
<section xml:id="internals2.opcodes.jmpz.code">
<title>PHP code</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Jump to the address if the value is zero
* opcode number: 43
*/
if($a != 0) echo "foo";
?>
]]>
</programlisting>
</section>
<section xml:id="internals2.opcodes.jmpz.listing">
<title>PHP opcodes</title>
<simpara>Function name: (null)</simpara>
<simpara>Compiled variables: !0=$a </simpara>
<informaltable>
<tgroup cols="7">
<thead>
<row>
<entry>line</entry><entry>#</entry><entry>op</entry>
<entry>fetch</entry><entry>ext</entry><entry>return</entry>
<entry>operands</entry>
</row>
</thead>
<tbody>
<row>
<entry>6</entry><entry>0</entry>
<entry>IS_NOT_EQUAL</entry><entry></entry>
<entry></entry><entry>~0</entry>
<entry>!0,0</entry>
</row>
<row>
<entry></entry><entry>1</entry>
<entry>JMPZ</entry><entry></entry>
<entry></entry><entry></entry>
<entry>~0,->4</entry>
</row>
<row>
<entry></entry><entry>2</entry>
<entry>ECHO</entry><entry></entry>
<entry></entry><entry></entry>
<entry>'foo'</entry>
</row>
<row>
<entry></entry><entry>3</entry>
<entry>JMP</entry><entry></entry>
<entry></entry><entry></entry>
<entry>->4</entry>
</row>
<row>
<entry>7</entry><entry>4</entry>
<entry>RETURN</entry><entry></entry>
<entry></entry><entry></entry>
<entry>1</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</section>

Some files were not shown because too many files have changed in this diff Show more