文字

RAISE_ABSTRACT_ERROR

PHP code

<?php


abstract class  fail  {
    abstract function 
show ();
}

class 
pass  extends  fail  {
    function 
show () {
        echo 
"Call to function show()\n" ;
    }
}

$t2  = new  pass ();
$t2 -> show ();

$t  = new  fail ();
$t -> show ();

echo 
"Done\n" // shouldn't be displayed
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$t2, !1=$t

line # op fetch ext return operands
7 0 NOP        
11 1 NOP        
  2 NOP        
17 3 ZEND_FETCH_CLASS     :3 'pass'
  4 NEW     $4 :3
  5 DO_FCALL_BY_NAME   0    
  6 ASSIGN       !0,$4
18 7 ZEND_INIT_METHOD_CALL       !0,'show'
  8 DO_FCALL_BY_NAME   0    
20 9 ZEND_FETCH_CLASS     :9 'fail'
  10 NEW     $10 :9
  11 DO_FCALL_BY_NAME   0    
  12 ASSIGN       !1,$10
21 13 ZEND_INIT_METHOD_CALL       !1,'show'
  14 DO_FCALL_BY_NAME   0    
23 15 ECHO       'Done%0A'
24 16 RETURN       1

Function name: show

Compiled variables: none

line # op fetch ext return operands
8 0 ZEND_RAISE_ABSTRACT_ERROR        
  1 RETURN       null

Function name: show

Compiled variables: none

line # op fetch ext return operands
13 0 ECHO       'Call+to+function+show%28%29%0A'
14 1 RETURN       null
上一篇: 下一篇: