PHP - Manual: DECLARE_INHERITED_CLASS
2024-12-21
<?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;
}
}
}
?>
Function name: (null)
Compiled variables: !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 |
Function name: staticValue
Compiled variables: !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 |
Function name: fooStatic
Compiled variables: !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 |
官方地址:https://www.php.net/manual/en/internals2.opcodes.declare-inherited-class.php