Php/docs/internals2.opcodes.declare-inherited-class

提供:Dev Guides
< Php
移動先:案内検索

DECLARE_INHERITED_CLASS

PHP コード

<?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;  } }}?>

PHP オペコード

関数名: (null)

コンパイルされた変数: !0=$b

line # op fetch ext return operands
6 0 JMPZ       !0,->5
7 1 ZEND_DECLARE_CLASS     $0 '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'
14 2 ZEND_FETCH_CLASS     :1 'Foo'
  3 ZEND_DECLARE_INHERITED_CLASS     $2 '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'
19 4 JMP       ->5
20 5 RETURN       1

関数名: staticValue

コンパイルされた変数: !0=$my_static

line # op fetch ext return operands
10 0 ZEND_FETCH_CLASS        
  1 FETCH_R staticmember   $1 'my_static'
  2 RETURN       $1
11 3 RETURN       null

関数名: fooStatic

コンパイルされた変数: !0=$my_static

line # op fetch ext return operands
16 0 ZEND_FETCH_CLASS     :0  
  1 FETCH_R staticmember   $1 'my_static'
  2 ECHO       $1
17 3 RETURN       null