mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00
Updated FETCH_OBJ_W example and opcode results to reflect correct behavior. Fixes bug #63600.
FETCH_W is for writing to object properties. FETCH_OBJ_W is for writing to properties of objects that are properties of other objects. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@329160 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
3357667fc8
commit
6910ef70cb
1 changed files with 53 additions and 28 deletions
|
@ -8,12 +8,12 @@
|
|||
<![CDATA[
|
||||
<?php
|
||||
/*
|
||||
* Fetch the "prop-name" property value of this object. Write-only?
|
||||
* Fetch an object from the property of this object and write to the property of the fectched object.
|
||||
* opcode number: 85
|
||||
*/
|
||||
$x = new A();
|
||||
$a = 'x';
|
||||
$$a->num = 1;;
|
||||
$foo = new stdclass;
|
||||
$foo->bar = new stdclass;
|
||||
$foo->bar->baz = 'quix';
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
|
@ -21,27 +21,28 @@ $$a->num = 1;;
|
|||
<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>
|
||||
<simpara>Compiled variables: !0 = $foo</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>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>2</entry><entry>0</entry>
|
||||
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
|
||||
<entry></entry><entry>:0</entry>
|
||||
<entry>'A'</entry>
|
||||
<entry>4</entry><entry>:0</entry>
|
||||
<entry>'stdclass'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>1</entry>
|
||||
<entry>NEW</entry><entry></entry>
|
||||
<entry></entry><entry>$1</entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>:0</entry>
|
||||
</row>
|
||||
<row>
|
||||
|
@ -54,34 +55,58 @@ $$a->num = 1;;
|
|||
<entry></entry><entry>3</entry>
|
||||
<entry>ASSIGN</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>!0,$1</entry>
|
||||
<entry>!0</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>7</entry><entry>4</entry>
|
||||
<entry>ASSIGN</entry><entry></entry>
|
||||
<entry>3</entry><entry>4</entry>
|
||||
<entry>ZEND_FETCH_CLASS</entry><entry></entry>
|
||||
<entry>4</entry><entry>:5</entry>
|
||||
<entry>'stdclass'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>5</entry>
|
||||
<entry>NEW</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>
|
||||
<entry>:5</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>6</entry>
|
||||
<entry>ZEND_ASSIGN_OBJ</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>$5,'num'</entry>
|
||||
<entry>DO_FCALL_BY_NAME</entry><entry></entry>
|
||||
<entry>0</entry><entry></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>7</entry>
|
||||
<entry>ZEND_OP_DATA</entry><entry></entry>
|
||||
<entry>ZEND_ASSIGN_OBJ</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>1</entry>
|
||||
<entry>!0, 'bar'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>9</entry><entry>8</entry>
|
||||
<entry></entry><entry>8</entry>
|
||||
<entry>ZEND_OP_DATA</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>4</entry><entry>9</entry>
|
||||
<entry>FETCH_OBJ_W</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>!0, 'bar'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>10</entry>
|
||||
<entry>ZEND_ASSIGN_OBJ</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>'baz'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry><entry>11</entry>
|
||||
<entry>ZEND_OP_DATA</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>'quix'</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>5</entry><entry>12</entry>
|
||||
<entry>RETURN</entry><entry></entry>
|
||||
<entry></entry><entry></entry>
|
||||
<entry>1</entry>
|
||||
|
@ -90,4 +115,4 @@ $$a->num = 1;;
|
|||
</tgroup>
|
||||
</informaltable>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
|
Loading…
Reference in a new issue