mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 00:48:54 +00:00
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:
parent
3edfaa7042
commit
cc98ddbbb0
137 changed files with 9496 additions and 9087 deletions
File diff suppressed because it is too large
Load diff
80
internals2/opcodes/add-array-element.xml
Normal file
80
internals2/opcodes/add-array-element.xml
Normal 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>
|
49
internals2/opcodes/add-char.xml
Normal file
49
internals2/opcodes/add-char.xml
Normal 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>
|
18
internals2/opcodes/add-interface.xml
Normal file
18
internals2/opcodes/add-interface.xml
Normal 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>
|
67
internals2/opcodes/add-string.xml
Normal file
67
internals2/opcodes/add-string.xml
Normal 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>
|
67
internals2/opcodes/add-var.xml
Normal file
67
internals2/opcodes/add-var.xml
Normal 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>
|
55
internals2/opcodes/add.xml
Normal file
55
internals2/opcodes/add.xml
Normal 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>
|
49
internals2/opcodes/assign-add.xml
Normal file
49
internals2/opcodes/assign-add.xml
Normal 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>
|
49
internals2/opcodes/assign-bw-and.xml
Normal file
49
internals2/opcodes/assign-bw-and.xml
Normal 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>
|
49
internals2/opcodes/assign-bw-or.xml
Normal file
49
internals2/opcodes/assign-bw-or.xml
Normal 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>
|
49
internals2/opcodes/assign-bw-xor.xml
Normal file
49
internals2/opcodes/assign-bw-xor.xml
Normal 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>
|
49
internals2/opcodes/assign-concat.xml
Normal file
49
internals2/opcodes/assign-concat.xml
Normal 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>
|
68
internals2/opcodes/assign-dim.xml
Normal file
68
internals2/opcodes/assign-dim.xml
Normal 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>
|
49
internals2/opcodes/assign-div.xml
Normal file
49
internals2/opcodes/assign-div.xml
Normal 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>
|
49
internals2/opcodes/assign-mod.xml
Normal file
49
internals2/opcodes/assign-mod.xml
Normal 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>
|
49
internals2/opcodes/assign-mul.xml
Normal file
49
internals2/opcodes/assign-mul.xml
Normal 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>
|
55
internals2/opcodes/assign-obj.xml
Normal file
55
internals2/opcodes/assign-obj.xml
Normal 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>
|
55
internals2/opcodes/assign-ref.xml
Normal file
55
internals2/opcodes/assign-ref.xml
Normal 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>
|
49
internals2/opcodes/assign-sl.xml
Normal file
49
internals2/opcodes/assign-sl.xml
Normal 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>
|
49
internals2/opcodes/assign-sr.xml
Normal file
49
internals2/opcodes/assign-sr.xml
Normal 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>
|
49
internals2/opcodes/assign-sub.xml
Normal file
49
internals2/opcodes/assign-sub.xml
Normal 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>
|
81
internals2/opcodes/assign.xml
Normal file
81
internals2/opcodes/assign.xml
Normal 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>
|
117
internals2/opcodes/begin-silence.xml
Normal file
117
internals2/opcodes/begin-silence.xml
Normal 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>
|
55
internals2/opcodes/bool-not.xml
Normal file
55
internals2/opcodes/bool-not.xml
Normal 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>
|
55
internals2/opcodes/bool-xor.xml
Normal file
55
internals2/opcodes/bool-xor.xml
Normal 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>
|
87
internals2/opcodes/bool.xml
Normal file
87
internals2/opcodes/bool.xml
Normal 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>
|
88
internals2/opcodes/brk.xml
Normal file
88
internals2/opcodes/brk.xml
Normal 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>
|
55
internals2/opcodes/bw-and.xml
Normal file
55
internals2/opcodes/bw-and.xml
Normal 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>
|
55
internals2/opcodes/bw-not.xml
Normal file
55
internals2/opcodes/bw-not.xml
Normal 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>
|
55
internals2/opcodes/bw-or.xml
Normal file
55
internals2/opcodes/bw-or.xml
Normal 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>
|
55
internals2/opcodes/bw-xor.xml
Normal file
55
internals2/opcodes/bw-xor.xml
Normal 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
150
internals2/opcodes/case.xml
Normal 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>
|
55
internals2/opcodes/cast.xml
Normal file
55
internals2/opcodes/cast.xml
Normal 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>
|
151
internals2/opcodes/catch.xml
Normal file
151
internals2/opcodes/catch.xml
Normal 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>
|
80
internals2/opcodes/clone.xml
Normal file
80
internals2/opcodes/clone.xml
Normal 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>
|
55
internals2/opcodes/concat.xml
Normal file
55
internals2/opcodes/concat.xml
Normal 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>
|
18
internals2/opcodes/cont.xml
Normal file
18
internals2/opcodes/cont.xml
Normal 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>
|
80
internals2/opcodes/declare-class.xml
Normal file
80
internals2/opcodes/declare-class.xml
Normal 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>
|
18
internals2/opcodes/declare-const.xml
Normal file
18
internals2/opcodes/declare-const.xml
Normal 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>
|
73
internals2/opcodes/declare-function.xml
Normal file
73
internals2/opcodes/declare-function.xml
Normal 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>
|
18
internals2/opcodes/declare-inherited-class-delayed.xml
Normal file
18
internals2/opcodes/declare-inherited-class-delayed.xml
Normal 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>
|
164
internals2/opcodes/declare-inherited-class.xml
Normal file
164
internals2/opcodes/declare-inherited-class.xml
Normal 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>
|
55
internals2/opcodes/div.xml
Normal file
55
internals2/opcodes/div.xml
Normal 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>
|
68
internals2/opcodes/do-fcall-by-name.xml
Normal file
68
internals2/opcodes/do-fcall-by-name.xml
Normal 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>
|
55
internals2/opcodes/do-fcall.xml
Normal file
55
internals2/opcodes/do-fcall.xml
Normal 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>
|
49
internals2/opcodes/echo.xml
Normal file
49
internals2/opcodes/echo.xml
Normal 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>
|
116
internals2/opcodes/end-silence.xml
Normal file
116
internals2/opcodes/end-silence.xml
Normal 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>
|
49
internals2/opcodes/exit.xml
Normal file
49
internals2/opcodes/exit.xml
Normal 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>
|
18
internals2/opcodes/ext-fcall-begin.xml
Normal file
18
internals2/opcodes/ext-fcall-begin.xml
Normal 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>
|
18
internals2/opcodes/ext-fcall-end.xml
Normal file
18
internals2/opcodes/ext-fcall-end.xml
Normal 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>
|
18
internals2/opcodes/ext-nop.xml
Normal file
18
internals2/opcodes/ext-nop.xml
Normal 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>
|
18
internals2/opcodes/ext-stmt.xml
Normal file
18
internals2/opcodes/ext-stmt.xml
Normal 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>
|
118
internals2/opcodes/fe-fetch.xml
Normal file
118
internals2/opcodes/fe-fetch.xml
Normal 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>
|
118
internals2/opcodes/fe-reset.xml
Normal file
118
internals2/opcodes/fe-reset.xml
Normal 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>
|
67
internals2/opcodes/fetch-class.xml
Normal file
67
internals2/opcodes/fetch-class.xml
Normal 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>
|
74
internals2/opcodes/fetch-constant.xml
Normal file
74
internals2/opcodes/fetch-constant.xml
Normal 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>
|
170
internals2/opcodes/fetch-dim-func-arg.xml
Normal file
170
internals2/opcodes/fetch-dim-func-arg.xml
Normal 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>
|
18
internals2/opcodes/fetch-dim-is.xml
Normal file
18
internals2/opcodes/fetch-dim-is.xml
Normal 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>
|
93
internals2/opcodes/fetch-dim-r.xml
Normal file
93
internals2/opcodes/fetch-dim-r.xml
Normal 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>
|
99
internals2/opcodes/fetch-dim-rw.xml
Normal file
99
internals2/opcodes/fetch-dim-rw.xml
Normal 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>
|
67
internals2/opcodes/fetch-dim-tmp-var.xml
Normal file
67
internals2/opcodes/fetch-dim-tmp-var.xml
Normal 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>
|
18
internals2/opcodes/fetch-dim-unset.xml
Normal file
18
internals2/opcodes/fetch-dim-unset.xml
Normal 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>
|
89
internals2/opcodes/fetch-dim-w.xml
Normal file
89
internals2/opcodes/fetch-dim-w.xml
Normal 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>
|
127
internals2/opcodes/fetch-func-arg.xml
Normal file
127
internals2/opcodes/fetch-func-arg.xml
Normal 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>
|
111
internals2/opcodes/fetch-is.xml
Normal file
111
internals2/opcodes/fetch-is.xml
Normal 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>
|
217
internals2/opcodes/fetch-obj-func-arg.xml
Normal file
217
internals2/opcodes/fetch-obj-func-arg.xml
Normal 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>
|
18
internals2/opcodes/fetch-obj-is.xml
Normal file
18
internals2/opcodes/fetch-obj-is.xml
Normal 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>
|
93
internals2/opcodes/fetch-obj-r.xml
Normal file
93
internals2/opcodes/fetch-obj-r.xml
Normal 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>
|
93
internals2/opcodes/fetch-obj-rw.xml
Normal file
93
internals2/opcodes/fetch-obj-rw.xml
Normal 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>
|
18
internals2/opcodes/fetch-obj-unset.xml
Normal file
18
internals2/opcodes/fetch-obj-unset.xml
Normal 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>
|
93
internals2/opcodes/fetch-obj-w.xml
Normal file
93
internals2/opcodes/fetch-obj-w.xml
Normal 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>
|
69
internals2/opcodes/fetch-r.xml
Normal file
69
internals2/opcodes/fetch-r.xml
Normal 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>
|
75
internals2/opcodes/fetch-rw.xml
Normal file
75
internals2/opcodes/fetch-rw.xml
Normal 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>
|
18
internals2/opcodes/fetch-unset.xml
Normal file
18
internals2/opcodes/fetch-unset.xml
Normal 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>
|
69
internals2/opcodes/fetch-w.xml
Normal file
69
internals2/opcodes/fetch-w.xml
Normal 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>
|
55
internals2/opcodes/free.xml
Normal file
55
internals2/opcodes/free.xml
Normal 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>
|
18
internals2/opcodes/goto.xml
Normal file
18
internals2/opcodes/goto.xml
Normal 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>
|
42
internals2/opcodes/handle-exception.xml
Normal file
42
internals2/opcodes/handle-exception.xml
Normal 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>
|
83
internals2/opcodes/include-or-eval.xml
Normal file
83
internals2/opcodes/include-or-eval.xml
Normal 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>
|
80
internals2/opcodes/init-array.xml
Normal file
80
internals2/opcodes/init-array.xml
Normal 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>
|
68
internals2/opcodes/init-fcall-by-name.xml
Normal file
68
internals2/opcodes/init-fcall-by-name.xml
Normal 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>
|
127
internals2/opcodes/init-method-call.xml
Normal file
127
internals2/opcodes/init-method-call.xml
Normal 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>
|
18
internals2/opcodes/init-ns-fcall-by-name.xml
Normal file
18
internals2/opcodes/init-ns-fcall-by-name.xml
Normal 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>
|
100
internals2/opcodes/init-static-method-call.xml
Normal file
100
internals2/opcodes/init-static-method-call.xml
Normal 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>
|
67
internals2/opcodes/init-string.xml
Normal file
67
internals2/opcodes/init-string.xml
Normal 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>
|
101
internals2/opcodes/instanceof.xml
Normal file
101
internals2/opcodes/instanceof.xml
Normal 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>
|
68
internals2/opcodes/is-equal.xml
Normal file
68
internals2/opcodes/is-equal.xml
Normal 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>
|
68
internals2/opcodes/is-identical.xml
Normal file
68
internals2/opcodes/is-identical.xml
Normal 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>
|
55
internals2/opcodes/is-not-equal.xml
Normal file
55
internals2/opcodes/is-not-equal.xml
Normal 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>
|
55
internals2/opcodes/is-not-identical.xml
Normal file
55
internals2/opcodes/is-not-identical.xml
Normal 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>
|
55
internals2/opcodes/is-smaller-or-equal.xml
Normal file
55
internals2/opcodes/is-smaller-or-equal.xml
Normal 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>
|
55
internals2/opcodes/is-smaller.xml
Normal file
55
internals2/opcodes/is-smaller.xml
Normal 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>
|
67
internals2/opcodes/isset-isempty-dim-obj.xml
Normal file
67
internals2/opcodes/isset-isempty-dim-obj.xml
Normal 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>
|
92
internals2/opcodes/isset-isempty-prop-obj.xml
Normal file
92
internals2/opcodes/isset-isempty-prop-obj.xml
Normal 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>
|
67
internals2/opcodes/isset-isempty-var.xml
Normal file
67
internals2/opcodes/isset-isempty-var.xml
Normal 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>
|
18
internals2/opcodes/jmp.xml
Normal file
18
internals2/opcodes/jmp.xml
Normal 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>
|
67
internals2/opcodes/jmpnz-ex.xml
Normal file
67
internals2/opcodes/jmpnz-ex.xml
Normal 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>
|
93
internals2/opcodes/jmpnz.xml
Normal file
93
internals2/opcodes/jmpnz.xml
Normal 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>
|
43
internals2/opcodes/jmpz-ex.xml
Normal file
43
internals2/opcodes/jmpz-ex.xml
Normal 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>
|
67
internals2/opcodes/jmpz.xml
Normal file
67
internals2/opcodes/jmpz.xml
Normal 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
Loading…
Reference in a new issue