3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Stdlib; error_reporting(E_ALL); use ArrayAccess; use Countable; use IteratorAggregate; use Serializable; /** * Custom framework ArrayObject implementation * * Extends version-specific "abstract" implementation. */ class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable { /** * Properties of the object have their normal functionality * when accessed as list (var_dump, foreach, etc.). */ const STD_PROP_LIST = 1; /** * Entries can be accessed as properties (read and write). */ const ARRAY_AS_PROPS = 2; /** * @var array */ protected $storage; /** * @var int */ protected $flag; /** * @var string */ protected $iteratorClass; /** * @var array */ protected $protectedProperties; /** * Constructor * * @param array $input * @param int $flags * @param string $iteratorClass */ public function __construct($input = array(), $flags = self::STD_PROP_LIST, $iteratorClass = 'ArrayIterator') { $this->setFlags($flags); $this->storage = $input; $this->setIteratorClass($iteratorClass); $this->protectedProperties = array_keys(get_object_vars($this)); } /** * Returns whether the requested key exists * * @param mixed $key * @return bool */ public function __isset($key) { if ($this->flag == self::ARRAY_AS_PROPS) { return $this->offsetExists($key); } if (in_array($key, $this->protectedProperties)) { throw new Exception\InvalidArgumentException('$key is a protected property, use a different key'); } return isset($this->$key); } /** * Sets the value at the specified key to value * * @param mixed $key * @param mixed $value * @return void */ public function __set($key, $value) { if ($this->flag == self::ARRAY_AS_PROPS) { return $this->offsetSet($key, $value); } if (in_array($key, $this->protectedProperties)) { throw new Exception\InvalidArgumentException('$key is a protected property, use a different key'); } $this->$key = $value; } /** * Unsets the value at the specified key * * @param mixed $key * @return void */ public function __unset($key) { if ($this->flag == self::ARRAY_AS_PROPS) { return $this->offsetUnset($key); } if (in_array($key, $this->protectedProperties)) { throw new Exception\InvalidArgumentException('$key is a protected property, use a different key'); } unset($this->$key); } /** * Returns the value at the specified key by reference * * @param mixed $key * @return mixed */ public function &__get($key) { $ret = null; if ($this->flag == self::ARRAY_AS_PROPS) { $ret =& $this->offsetGet($key); return $ret; } if (in_array($key, $this->protectedProperties)) { throw new Exception\InvalidArgumentException('$key is a protected property, use a different key'); } return $this->$key; } /** * Appends the value * * @param mixed $value * @return void */ public function append($value) { $this->storage[] = $value; } /** * Sort the entries by value * * @return void */ public function asort() { asort($this->storage); } /** * Get the number of public properties in the ArrayObject * * @return int */ public function count() { return count($this->storage); } /** * Exchange the array for another one. * * @param array|ArrayObject $data * @return array */ public function exchangeArray($data) { if (!is_array($data) && !is_object($data)) { throw new Exception\InvalidArgumentException('Passed variable is not an array or object, using empty array instead'); } if (is_object($data) && ($data instanceof self || $data instanceof \ArrayObject)) { $data = $data->getArrayCopy(); } if (!is_array($data)) { $data = (array) $data; } $storage = $this->storage; $this->storage = $data; return $storage; } /** * Creates a copy of the ArrayObject. * * @return array */ public function getArrayCopy() { return $this->storage; } /** * Gets the behavior flags. * * @return int */ public function getFlags() { return $this->flag; } /** * Create a new iterator from an ArrayObject instance * * @return \Iterator */ public function getIterator() { $class = $this->iteratorClass; return new $class($this->storage); } /** * Gets the iterator classname for the ArrayObject. * * @return string */ public function getIteratorClass() { return $this->iteratorClass; } /** * Sort the entries by key * * @return void */ public function ksort() { ksort($this->storage); } /** * Sort an array using a case insensitive "natural order" algorithm * * @return void */ public function natcasesort() { natcasesort($this->storage); } /** * Sort entries using a "natural order" algorithm * * @return void */ public function natsort() { natsort($this->storage); } /** * Returns whether the requested key exists * * @param mixed $key * @return bool */ public function offsetExists($key) { return isset($this->storage[$key]); } /** * Returns the value at the specified key * * @param mixed $key * @return mixed */ public function &offsetGet($key) { $ret = null; if (!$this->offsetExists($key)) { return $ret; } $ret =& $this->storage[$key]; return $ret; } /** * Sets the value at the specified key to value * * @param mixed $key * @param mixed $value * @return void */ public function offsetSet($key, $value) { $this->storage[$key] = $value; } /** * Unsets the value at the specified key * * @param mixed $key * @return void */ public function offsetUnset($key) { if ($this->offsetExists($key)) { unset($this->storage[$key]); } } /** * Serialize an ArrayObject * * @return string */ public function serialize() { return serialize(get_object_vars($this)); } /** * Sets the behavior flags * * @param int $flags * @return void */ public function setFlags($flags) { $this->flag = $flags; } /** * Sets the iterator classname for the ArrayObject * * @param string $class * @return void */ public function setIteratorClass($class) { if (class_exists($class)) { $this->iteratorClass = $class; return ; } if (strpos($class, '\\') === 0) { $class = '\\' . $class; if (class_exists($class)) { $this->iteratorClass = $class; return ; } } throw new Exception\InvalidArgumentException('The iterator class does not exist'); } /** * Sort the entries with a user-defined comparison function and maintain key association * * @param callable $function * @return void */ public function uasort($function) { if (is_callable($function)) { uasort($this->storage, $function); } } /** * Sort the entries by keys using a user-defined comparison function * * @param callable $function * @return void */ public function uksort($function) { if (is_callable($function)) { uksort($this->storage, $function); } } /** * Unserialize an ArrayObject * * @param string $data * @return void */ public function unserialize($data) { $ar = unserialize($data); $this->setFlags($ar['flag']); $this->exchangeArray($ar['storage']); $this->setIteratorClass($ar['iteratorClass']); foreach ($ar as $k => $v) { switch ($k) { case 'flag': $this->setFlags($v); break; case 'storage': $this->exchangeArray($v); break; case 'iteratorClass': $this->setIteratorClass($v); break; case 'protectedProperties': continue; default: $this->__set($k, $v); } } } }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  (null)
number of ops:  6
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   12     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cerror_reporting'
          1        FETCH_CONSTANT                                   ~0      'Zend%5CStdlib%5CE_ALL'
          2        SEND_VAL_EX                                              ~0
          3        DO_FCALL                                      0          
   24     4        DECLARE_CLASS                                            'zend%5Cstdlib%5Carrayobject'
  431     5      > RETURN                                                   1

Class Zend\Stdlib\ArrayObject:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  __construct
number of ops:  21
compiled vars:  !0 = $input, !1 = $flags, !2 = $iteratorClass
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   64     0  E >   RECV_INIT                                        !0      <array>
          1        RECV_INIT                                        !1      <const ast>
          2        RECV_INIT                                        !2      'ArrayIterator'
   66     3        INIT_METHOD_CALL                                         'setFlags'
          4        SEND_VAR_EX                                              !1
          5        DO_FCALL                                      0          
   67     6        ASSIGN_OBJ                                               'storage'
          7        OP_DATA                                                  !0
   68     8        INIT_METHOD_CALL                                         'setIteratorClass'
          9        SEND_VAR_EX                                              !2
         10        DO_FCALL                                      0          
   69    11        INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Carray_keys'
         12        INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cget_object_vars'
         13        FETCH_THIS                                       $7      
         14        SEND_VAR_EX                                              $7
         15        DO_FCALL                                      0  $8      
         16        SEND_VAR_NO_REF_EX                                       $8
         17        DO_FCALL                                      0  $9      
         18        ASSIGN_OBJ                                               'protectedProperties'
         19        OP_DATA                                                  $9
   70    20      > RETURN                                                   null

End of function __construct

Function __isset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 20
Branch analysis from position: 16
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  __isset
number of ops:  23
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   78     0  E >   RECV                                             !0      
   80     1        FETCH_OBJ_R                                      ~1      'flag'
          2        FETCH_CLASS_CONSTANT                             ~2      'ARRAY_AS_PROPS'
          3        IS_EQUAL                                                 ~1, ~2
          4      > JMPZ                                                     ~3, ->9
   81     5    >   INIT_METHOD_CALL                                         'offsetExists'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0  $4      
          8      > RETURN                                                   $4
   83     9    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cin_array'
         10        SEND_VAR_EX                                              !0
         11        CHECK_FUNC_ARG                                           
         12        FETCH_OBJ_FUNC_ARG                               $5      'protectedProperties'
         13        SEND_FUNC_ARG                                            $5
         14        DO_FCALL                                      0  $6      
         15      > JMPZ                                                     $6, ->20
   84    16    >   NEW                                              $7      'Zend%5CStdlib%5CException%5CInvalidArgumentException'
         17        SEND_VAL_EX                                              '%24key+is+a+protected+property%2C+use+a+different+key'
         18        DO_FCALL                                      0          
         19      > THROW                                         0          $7
   87    20    >   ISSET_ISEMPTY_PROP_OBJ                           ~9      !0
         21      > RETURN                                                   ~9
   88    22*     > RETURN                                                   null

End of function __isset

Function __set:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 11
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 22
Branch analysis from position: 18
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  __set
number of ops:  25
compiled vars:  !0 = $key, !1 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   97     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   99     2        FETCH_OBJ_R                                      ~2      'flag'
          3        FETCH_CLASS_CONSTANT                             ~3      'ARRAY_AS_PROPS'
          4        IS_EQUAL                                                 ~2, ~3
          5      > JMPZ                                                     ~4, ->11
  100     6    >   INIT_METHOD_CALL                                         'offsetSet'
          7        SEND_VAR_EX                                              !0
          8        SEND_VAR_EX                                              !1
          9        DO_FCALL                                      0  $5      
         10      > RETURN                                                   $5
  102    11    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cin_array'
         12        SEND_VAR_EX                                              !0
         13        CHECK_FUNC_ARG                                           
         14        FETCH_OBJ_FUNC_ARG                               $6      'protectedProperties'
         15        SEND_FUNC_ARG                                            $6
         16        DO_FCALL                                      0  $7      
         17      > JMPZ                                                     $7, ->22
  103    18    >   NEW                                              $8      'Zend%5CStdlib%5CException%5CInvalidArgumentException'
         19        SEND_VAL_EX                                              '%24key+is+a+protected+property%2C+use+a+different+key'
         20        DO_FCALL                                      0          
         21      > THROW                                         0          $8
  105    22    >   ASSIGN_OBJ                                               !0
         23        OP_DATA                                                  !1
  106    24      > RETURN                                                   null

End of function __set

Function __unset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 20
Branch analysis from position: 16
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  __unset
number of ops:  22
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  114     0  E >   RECV                                             !0      
  116     1        FETCH_OBJ_R                                      ~1      'flag'
          2        FETCH_CLASS_CONSTANT                             ~2      'ARRAY_AS_PROPS'
          3        IS_EQUAL                                                 ~1, ~2
          4      > JMPZ                                                     ~3, ->9
  117     5    >   INIT_METHOD_CALL                                         'offsetUnset'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0  $4      
          8      > RETURN                                                   $4
  119     9    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cin_array'
         10        SEND_VAR_EX                                              !0
         11        CHECK_FUNC_ARG                                           
         12        FETCH_OBJ_FUNC_ARG                               $5      'protectedProperties'
         13        SEND_FUNC_ARG                                            $5
         14        DO_FCALL                                      0  $6      
         15      > JMPZ                                                     $6, ->20
  120    16    >   NEW                                              $7      'Zend%5CStdlib%5CException%5CInvalidArgumentException'
         17        SEND_VAL_EX                                              '%24key+is+a+protected+property%2C+use+a+different+key'
         18        DO_FCALL                                      0          
         19      > THROW                                         0          $7
  122    20    >   UNSET_OBJ                                                !0
  123    21      > RETURN                                                   null

End of function __unset

Function __get:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 11
Branch analysis from position: 6
Return found
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 22
Branch analysis from position: 18
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 22
Return found
filename:       /in/T7OgH
function name:  __get
number of ops:  25
compiled vars:  !0 = $key, !1 = $ret
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  131     0  E >   RECV                                             !0      
  133     1        ASSIGN                                                   !1, null
  134     2        FETCH_OBJ_R                                      ~3      'flag'
          3        FETCH_CLASS_CONSTANT                             ~4      'ARRAY_AS_PROPS'
          4        IS_EQUAL                                                 ~3, ~4
          5      > JMPZ                                                     ~5, ->11
  135     6    >   INIT_METHOD_CALL                                         'offsetGet'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0  $6      
          9        ASSIGN_REF                                               !1, $6
  137    10      > RETURN_BY_REF                                            !1
  139    11    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cin_array'
         12        SEND_VAR_EX                                              !0
         13        CHECK_FUNC_ARG                                           
         14        FETCH_OBJ_FUNC_ARG                               $8      'protectedProperties'
         15        SEND_FUNC_ARG                                            $8
         16        DO_FCALL                                      0  $9      
         17      > JMPZ                                                     $9, ->22
  140    18    >   NEW                                              $10     'Zend%5CStdlib%5CException%5CInvalidArgumentException'
         19        SEND_VAL_EX                                              '%24key+is+a+protected+property%2C+use+a+different+key'
         20        DO_FCALL                                      0          
         21      > THROW                                         0          $10
  143    22    >   FETCH_OBJ_W                                      $12     !0
         23      > RETURN_BY_REF                                            $12
  144    24*     > RETURN_BY_REF                                            null

End of function __get

Function append:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  append
number of ops:  5
compiled vars:  !0 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  152     0  E >   RECV                                             !0      
  154     1        FETCH_OBJ_W                                      $1      'storage'
          2        ASSIGN_DIM                                               $1
          3        OP_DATA                                                  !0
  155     4      > RETURN                                                   null

End of function append

Function asort:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  asort
number of ops:  6
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  164     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Casort'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $0      'storage'
          3        SEND_FUNC_ARG                                            $0
          4        DO_FCALL                                      0          
  165     5      > RETURN                                                   null

End of function asort

Function count:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  count
number of ops:  7
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  174     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Ccount'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $0      'storage'
          3        SEND_FUNC_ARG                                            $0
          4        DO_FCALL                                      0  $1      
          5      > RETURN                                                   $1
  175     6*     > RETURN                                                   null

End of function count

Function exchangearray:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 6, Position 2 = 11
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 16
Branch analysis from position: 12
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 16
2 jumps found. (Code = 46) Position 1 = 20, Position 2 = 25
Branch analysis from position: 20
2 jumps found. (Code = 47) Position 1 = 22, Position 2 = 24
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 29
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 36
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
Branch analysis from position: 29
Branch analysis from position: 24
Branch analysis from position: 25
Branch analysis from position: 11
filename:       /in/T7OgH
function name:  exchangeArray
number of ops:  42
compiled vars:  !0 = $data, !1 = $storage
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  183     0  E >   RECV                                             !0      
  185     1        INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cis_array'
          2        SEND_VAR_EX                                              !0
          3        DO_FCALL                                      0  $2      
          4        BOOL_NOT                                         ~3      $2
          5      > JMPZ_EX                                          ~3      ~3, ->11
          6    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cis_object'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0  $4      
          9        BOOL_NOT                                         ~5      $4
         10        BOOL                                             ~3      ~5
         11    > > JMPZ                                                     ~3, ->16
  186    12    >   NEW                                              $6      'Zend%5CStdlib%5CException%5CInvalidArgumentException'
         13        SEND_VAL_EX                                              'Passed+variable+is+not+an+array+or+object%2C+using+empty+array+instead'
         14        DO_FCALL                                      0          
         15      > THROW                                         0          $6
  189    16    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cis_object'
         17        SEND_VAR_EX                                              !0
         18        DO_FCALL                                      0  $8      
         19      > JMPZ_EX                                          ~9      $8, ->25
         20    >   INSTANCEOF                                       ~10     !0
         21      > JMPNZ_EX                                         ~10     ~10, ->24
         22    >   INSTANCEOF                                       ~11     !0, 'ArrayObject'
         23        BOOL                                             ~10     ~11
         24    >   BOOL                                             ~9      ~10
         25    > > JMPZ                                                     ~9, ->29
  190    26    >   INIT_METHOD_CALL                                         !0, 'getArrayCopy'
         27        DO_FCALL                                      0  $12     
         28        ASSIGN                                                   !0, $12
  192    29    >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cis_array'
         30        SEND_VAR_EX                                              !0
         31        DO_FCALL                                      0  $14     
         32        BOOL_NOT                                         ~15     $14
         33      > JMPZ                                                     ~15, ->36
  193    34    >   CAST                                          7  ~16     !0
         35        ASSIGN                                                   !0, ~16
  196    36    >   FETCH_OBJ_R                                      ~18     'storage'
         37        ASSIGN                                                   !1, ~18
  198    38        ASSIGN_OBJ                                               'storage'
         39        OP_DATA                                                  !0
  200    40      > RETURN                                                   !1
  201    41*     > RETURN                                                   null

End of function exchangearray

Function getarraycopy:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  getArrayCopy
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  210     0  E >   FETCH_OBJ_R                                      ~0      'storage'
          1      > RETURN                                                   ~0
  211     2*     > RETURN                                                   null

End of function getarraycopy

Function getflags:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  getFlags
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  220     0  E >   FETCH_OBJ_R                                      ~0      'flag'
          1      > RETURN                                                   ~0
  221     2*     > RETURN                                                   null

End of function getflags

Function getiterator:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  getIterator
number of ops:  10
compiled vars:  !0 = $class
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  230     0  E >   FETCH_OBJ_R                                      ~1      'iteratorClass'
          1        ASSIGN                                                   !0, ~1
  232     2        FETCH_CLASS                                   0  $3      !0
          3        NEW                                              $4      $3
          4        CHECK_FUNC_ARG                                           
          5        FETCH_OBJ_FUNC_ARG                               $5      'storage'
          6        SEND_FUNC_ARG                                            $5
          7        DO_FCALL                                      0          
          8      > RETURN                                                   $4
  233     9*     > RETURN                                                   null

End of function getiterator

Function getiteratorclass:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  getIteratorClass
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  242     0  E >   FETCH_OBJ_R                                      ~0      'iteratorClass'
          1      > RETURN                                                   ~0
  243     2*     > RETURN                                                   null

End of function getiteratorclass

Function ksort:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  ksort
number of ops:  6
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  252     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cksort'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $0      'storage'
          3        SEND_FUNC_ARG                                            $0
          4        DO_FCALL                                      0          
  253     5      > RETURN                                                   null

End of function ksort

Function natcasesort:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  natcasesort
number of ops:  6
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  262     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cnatcasesort'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $0      'storage'
          3        SEND_FUNC_ARG                                            $0
          4        DO_FCALL                                      0          
  263     5      > RETURN                                                   null

End of function natcasesort

Function natsort:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  natsort
number of ops:  6
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  272     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStdlib%5Cnatsort'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $0      'storage'
          3        SEND_FUNC_ARG                                            $0
          4        DO_FCALL                                      0          
  273     5      > RETURN                                                   null

End of function natsort

Function offsetexists:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  offsetExists
number of ops:  5
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  281     0  E >   RECV                                             !0      
  283     1        FETCH_OBJ_IS                                     ~1      'storage'
          2        ISSET_ISEMPTY_DIM_OBJ                         0  ~2      ~1, !0
          3      > RETURN                                                   ~2
  284     4*     > RETURN                                                   null

End of function offsetexists

Function offsetget:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 8
Branch analysis from position: 7
Return found
Branch analysis from position: 8
Return found
filename:       /in/T7OgH
function name:  offsetGet
number of ops:  13
compiled vars:  !0 = $key, !1 = $ret
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  292     0  E >   RECV                                             !0      
  294     1        ASSIGN                                                   !1, null
  295     2        INIT_METHOD_CALL                                         'offsetExists'
          3        SEND_VAR_EX                                              !0
          4        DO_FCALL                                      0  $3      
          5        BOOL_NOT                                         ~4      $3
          6      > JMPZ                                                     ~4, ->8
  296     7    > > RETURN_BY_REF                                            !1
  298     8    >   FETCH_OBJ_W                                      $5      'storage'
          9        FETCH_DIM_W                                      $6      $5, !0
         10        ASSIGN_REF                                               !1, $6
  300    11      > RETURN_BY_REF                                            !1
  301    12*     > RETURN_BY_REF                                            null

End of function offsetget

Function offsetset:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  offsetSet
number of ops:  6
compiled vars:  !0 = $key, !1 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  310     0  E >   RECV                                             !0      
          1        RECV                                             !1      
  312     2        FETCH_OBJ_W                                      $2      'storage'
          3        ASSIGN_DIM                                               $2, !0
          4        OP_DATA                                                  !1
  313     5      > RETURN                                                   null

End of function offsetset

Function offsetunset:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
filename:       /in/T7OgH
function name:  offsetUnset
number of ops:  8
compiled vars:  !0 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  321     0  E >   RECV                                             !0      
  323     1        INIT_METHOD_CALL                                         'offsetExists'
          2        SEND_VAR_EX                                              !0
          3        DO_FCALL                                      0  $1      
          4      > JMPZ                                                     $1, ->7
  324     5    >   FETCH_OBJ_UNSET                                  $2      'storage'
          6        UNSET_DIM                                                $2, !0
  326     7    > > RETURN                                                   null

End of function offsetunset

Function serialize:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/T7OgH
function name:  serialize
number of ops:  9
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  335     0  E >   INIT_NS_FCALL_BY_NAME                                    'Zend%5CStd

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.03 ms | 1428 KiB | 35 Q