3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace east\movie\library\finder; use east, east\movie, east\movie\library ; final class selector { private $library, $directorCriteria, $movieDirector, $titleCriteria, $movieTitle ; function __construct() { $this->library = new movie\library; } function libraryIs(movie\library $library) { $selector = clone $this; $selector->library = $library; return $selector; } function directorShouldBe(movie\director $director) { $selector = $this->libraryIs(new movie\library); $selector->directorCriteria = $director; return $selector; } function titleShouldBe(movie\title $title) { $selector = $this->libraryIs(new movie\library); $selector->titleCriteria = $title; return $selector; } function movieIs(movie $movie) { $selector = clone $this; $selector->movieDirector = null; $selector->movieTitle = null; $movie->selectorIs($selector); switch (true) { case $selector->directorCriteria && $selector->titleCriteria && $selector->movieDirector == $selector->directorCriteria && $selector->movieTitle == $selector->titleCriteria: case $selector->directorCriteria && ! $selector->titleCriteria && $selector->movieDirector == $selector->directorCriteria: case $selector->titleCriteria && ! $selector->directorCriteria && $selector->movieTitle == $selector->titleCriteria: $this->library->newMovie($movie); } return $this; } function movieDirectorIs(movie\director $director) { $this->movieDirector = $director; return $this; } function movieTitleIs(movie\title $title) { $this->movieTitle = $title; return $this; } function listerIs(movie\lister $lister) { $this->library->listerIs($lister); return $this; } } namespace east\movie\library; use east\movie ; final class finder { private $selector ; function __construct(finder\selector $selector = null) { $this->selector = $selector ?: new finder\selector; } function directorShouldBe(movie\director $director) { $finder = clone $this; $finder->selector = $this->selector->directorShouldBe($director); return $finder; } function titleShouldBe(movie\title $title) { $finder = clone $this; $finder->selector = $this->selector->titleShouldBe($title); return $finder; } function movieIs(movie $movie) { $this->selector->movieIs($movie); return $this; } function libraryIs(movie\library $library) { $finder = clone $this; $finder->selector = $this->selector->libraryIs(new movie\library); $library->finderIs($finder); return $finder; } function listerIs(movie\lister $lister) { $this->selector->listerIs($lister); return $this; } } namespace east\movie; use east ; final class library { private $movies ; function __construct() { $this->movies = []; } function newMovie(east\movie $movie) { $this->movies[] = $movie; return $this; } function finderIs(library\finder $finder) { foreach ($this->movies as $movie) { $finder->movieIs($movie); } return $this; } function listerIs(lister $lister) { foreach ($this->movies as $movie) { $movie->listerIs($lister); } return $this; } } final class director { private $value ; function __construct($value) { if (! is_string($value)) { throw new \domainException('Movie Director should be a string'); } $this->value = $value; } function __toString() { return $this->value; } } final class title { private $value ; function __construct($value) { if (! is_string($value)) { throw new \domainException('Movie title should be a string'); } $this->value = $value; } function __toString() { return $this->value; } } final class lister { function newMovie() { echo '-------------------------' . PHP_EOL; return $this; } function noMoreDataAboutMovie() { return $this; } function movieDirectorIs(director $director) { echo 'Director: ' . $director . PHP_EOL; return $this; } function movieTitleIs(title $title) { echo 'Title: ' . $title . PHP_EOL; return $this; } } namespace east; use east\movie ; class movie { private $director, $title ; function __construct(movie\director $director, movie\title $title) { $this->director = $director; $this->title = $title; } function selectorIs(movie\library\finder\selector $selector) { $selector ->movieDirectorIs($this->director) ->movieTitleIs($this->title) ; return $this; } function listerIs(movie\lister $lister) { $lister ->newMovie() ->movieTitleIs($this->title) ->movieDirectorIs($this->director) ->noMoreDataAboutMovie() ; return $this; } } var_dump(serialize((new movie\library\finder) ->directorShouldBe(new movie\Director('Ridley Scott')) ->libraryIs((new movie\library) ->newMovie(new movie(new movie\director('Ridley Scott'), new movie\title('Alien'))) ->newMovie(new movie(new movie\director('Christopher Nolan'), new movie\title('Interstellar'))) ->newMovie(new movie(new movie\director('Ridley Scott'), new movie\title('Gladiator'))) ) ->listerIs(new movie\lister))) ;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  (null)
number of ops:  66
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  194     0  E >   DECLARE_CLASS                                            'east%5Cmovie%5Cdirector'
  216     1        DECLARE_CLASS                                            'east%5Cmovie%5Ctitle'
  309     2        INIT_NS_FCALL_BY_NAME                                    'east%5Cvar_dump'
          3        INIT_NS_FCALL_BY_NAME                                    'east%5Cserialize'
          4        NEW                                              $0      'east%5Cmovie%5Clibrary%5Cfinder'
          5        DO_FCALL                                      0          
  310     6        INIT_METHOD_CALL                                         $0, 'directorShouldBe'
          7        NEW                                              $2      'east%5Cmovie%5CDirector'
          8        SEND_VAL_EX                                              'Ridley+Scott'
          9        DO_FCALL                                      0          
         10        SEND_VAR_NO_REF_EX                                       $2
         11        DO_FCALL                                      0  $4      
  311    12        INIT_METHOD_CALL                                         $4, 'libraryIs'
         13        NEW                                              $5      'east%5Cmovie%5Clibrary'
         14        DO_FCALL                                      0          
  312    15        INIT_METHOD_CALL                                         $5, 'newMovie'
         16        NEW                                              $7      'east%5Cmovie'
         17        NEW                                              $8      'east%5Cmovie%5Cdirector'
         18        SEND_VAL_EX                                              'Ridley+Scott'
         19        DO_FCALL                                      0          
         20        SEND_VAR_NO_REF_EX                                       $8
         21        NEW                                              $10     'east%5Cmovie%5Ctitle'
         22        SEND_VAL_EX                                              'Alien'
         23        DO_FCALL                                      0          
         24        SEND_VAR_NO_REF_EX                                       $10
         25        DO_FCALL                                      0          
         26        SEND_VAR_NO_REF_EX                                       $7
         27        DO_FCALL                                      0  $13     
  313    28        INIT_METHOD_CALL                                         $13, 'newMovie'
         29        NEW                                              $14     'east%5Cmovie'
         30        NEW                                              $15     'east%5Cmovie%5Cdirector'
         31        SEND_VAL_EX                                              'Christopher+Nolan'
         32        DO_FCALL                                      0          
         33        SEND_VAR_NO_REF_EX                                       $15
         34        NEW                                              $17     'east%5Cmovie%5Ctitle'
         35        SEND_VAL_EX                                              'Interstellar'
         36        DO_FCALL                                      0          
         37        SEND_VAR_NO_REF_EX                                       $17
         38        DO_FCALL                                      0          
         39        SEND_VAR_NO_REF_EX                                       $14
         40        DO_FCALL                                      0  $20     
  314    41        INIT_METHOD_CALL                                         $20, 'newMovie'
         42        NEW                                              $21     'east%5Cmovie'
         43        NEW                                              $22     'east%5Cmovie%5Cdirector'
         44        SEND_VAL_EX                                              'Ridley+Scott'
         45        DO_FCALL                                      0          
         46        SEND_VAR_NO_REF_EX                                       $22
         47        NEW                                              $24     'east%5Cmovie%5Ctitle'
         48        SEND_VAL_EX                                              'Gladiator'
         49        DO_FCALL                                      0          
         50        SEND_VAR_NO_REF_EX                                       $24
         51        DO_FCALL                                      0          
         52        SEND_VAR_NO_REF_EX                                       $21
         53        DO_FCALL                                      0  $27     
         54        SEND_VAR_NO_REF_EX                                       $27
         55        DO_FCALL                                      0  $28     
  316    56        INIT_METHOD_CALL                                         $28, 'listerIs'
         57        NEW                                              $29     'east%5Cmovie%5Clister'
         58        DO_FCALL                                      0          
         59        SEND_VAR_NO_REF_EX                                       $29
         60        DO_FCALL                                      0  $31     
         61        SEND_VAR_NO_REF_EX                                       $31
         62        DO_FCALL                                      0  $32     
         63        SEND_VAR_NO_REF_EX                                       $32
         64        DO_FCALL                                      0          
  317    65      > RETURN                                                   1

Class east\movie\library\finder\selector:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  __construct
number of ops:  5
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   23     0  E >   NEW                                              $1      'east%5Cmovie%5Clibrary'
          1        DO_FCALL                                      0          
          2        ASSIGN_OBJ                                               'library'
          3        OP_DATA                                                  $1
   24     4      > RETURN                                                   null

End of function __construct

Function libraryis:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  libraryIs
number of ops:  8
compiled vars:  !0 = $library, !1 = $selector
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   26     0  E >   RECV                                             !0      
   28     1        FETCH_THIS                                       ~2      
          2        CLONE                                            ~3      ~2
          3        ASSIGN                                                   !1, ~3
   29     4        ASSIGN_OBJ                                               !1, 'library'
          5        OP_DATA                                                  !0
   31     6      > RETURN                                                   !1
   32     7*     > RETURN                                                   null

End of function libraryis

Function directorshouldbe:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  directorShouldBe
number of ops:  11
compiled vars:  !0 = $director, !1 = $selector
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   34     0  E >   RECV                                             !0      
   36     1        INIT_METHOD_CALL                                         'libraryIs'
          2        NEW                                              $2      'east%5Cmovie%5Clibrary'
          3        DO_FCALL                                      0          
          4        SEND_VAR_NO_REF_EX                                       $2
          5        DO_FCALL                                      0  $4      
          6        ASSIGN                                                   !1, $4
   37     7        ASSIGN_OBJ                                               !1, 'directorCriteria'
          8        OP_DATA                                                  !0
   39     9      > RETURN                                                   !1
   40    10*     > RETURN                                                   null

End of function directorshouldbe

Function titleshouldbe:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  titleShouldBe
number of ops:  11
compiled vars:  !0 = $title, !1 = $selector
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   42     0  E >   RECV                                             !0      
   44     1        INIT_METHOD_CALL                                         'libraryIs'
          2        NEW                                              $2      'east%5Cmovie%5Clibrary'
          3        DO_FCALL                                      0          
          4        SEND_VAR_NO_REF_EX                                       $2
          5        DO_FCALL                                      0  $4      
          6        ASSIGN                                                   !1, $4
   45     7        ASSIGN_OBJ                                               !1, 'titleCriteria'
          8        OP_DATA                                                  !0
   47     9      > RETURN                                                   !1
   48    10*     > RETURN                                                   null

End of function titleshouldbe

Function movieis:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
2 jumps found. (Code = 46) Position 1 = 16, Position 2 = 20
Branch analysis from position: 16
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 25
Branch analysis from position: 21
2 jumps found. (Code = 44) Position 1 = 26, Position 2 = 49
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 28, Position 2 = 31
Branch analysis from position: 28
2 jumps found. (Code = 46) Position 1 = 32, Position 2 = 36
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 49
Branch analysis from position: 37
2 jumps found. (Code = 46) Position 1 = 39, Position 2 = 42
Branch analysis from position: 39
2 jumps found. (Code = 46) Position 1 = 43, Position 2 = 47
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 49
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 49
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
Branch analysis from position: 42
Branch analysis from position: 49
Branch analysis from position: 36
Branch analysis from position: 31
Branch analysis from position: 49
Branch analysis from position: 25
Branch analysis from position: 20
Branch analysis from position: 15
filename:       /in/kskSY
function name:  movieIs
number of ops:  56
compiled vars:  !0 = $movie, !1 = $selector
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   50     0  E >   RECV                                             !0      
   52     1        FETCH_THIS                                       ~2      
          2        CLONE                                            ~3      ~2
          3        ASSIGN                                                   !1, ~3
   53     4        ASSIGN_OBJ                                               !1, 'movieDirector'
          5        OP_DATA                                                  null
   54     6        ASSIGN_OBJ                                               !1, 'movieTitle'
          7        OP_DATA                                                  null
   56     8        INIT_METHOD_CALL                                         !0, 'selectorIs'
          9        SEND_VAR_EX                                              !1
         10        DO_FCALL                                      0          
   60    11        FETCH_OBJ_R                                      ~9      !1, 'directorCriteria'
         12      > JMPZ_EX                                          ~9      ~9, ->15
         13    >   FETCH_OBJ_R                                      ~10     !1, 'titleCriteria'
         14        BOOL                                             ~9      ~10
         15    > > JMPZ_EX                                          ~9      ~9, ->20
         16    >   FETCH_OBJ_R                                      ~11     !1, 'movieDirector'
         17        FETCH_OBJ_R                                      ~12     !1, 'directorCriteria'
         18        IS_EQUAL                                         ~13     ~11, ~12
         19        BOOL                                             ~9      ~13
         20    > > JMPZ_EX                                          ~9      ~9, ->25
         21    >   FETCH_OBJ_R                                      ~14     !1, 'movieTitle'
         22        FETCH_OBJ_R                                      ~15     !1, 'titleCriteria'
         23        IS_EQUAL                                         ~16     ~14, ~15
         24        BOOL                                             ~9      ~16
         25    > > JMPNZ                                                    ~9, ->49
   61    26    >   FETCH_OBJ_R                                      ~17     !1, 'directorCriteria'
         27      > JMPZ_EX                                          ~17     ~17, ->31
         28    >   FETCH_OBJ_R                                      ~18     !1, 'titleCriteria'
         29        BOOL_NOT                                         ~19     ~18
         30        BOOL                                             ~17     ~19
         31    > > JMPZ_EX                                          ~17     ~17, ->36
         32    >   FETCH_OBJ_R                                      ~20     !1, 'movieDirector'
         33        FETCH_OBJ_R                                      ~21     !1, 'directorCriteria'
         34        IS_EQUAL                                         ~22     ~20, ~21
         35        BOOL                                             ~17     ~22
         36    > > JMPNZ                                                    ~17, ->49
   62    37    >   FETCH_OBJ_R                                      ~23     !1, 'titleCriteria'
         38      > JMPZ_EX                                          ~23     ~23, ->42
         39    >   FETCH_OBJ_R                                      ~24     !1, 'directorCriteria'
         40        BOOL_NOT                                         ~25     ~24
         41        BOOL                                             ~23     ~25
         42    > > JMPZ_EX                                          ~23     ~23, ->47
         43    >   FETCH_OBJ_R                                      ~26     !1, 'movieTitle'
         44        FETCH_OBJ_R                                      ~27     !1, 'titleCriteria'
         45        IS_EQUAL                                         ~28     ~26, ~27
         46        BOOL                                             ~23     ~28
         47    > > JMPNZ                                                    ~23, ->49
         48    > > JMP                                                      ->53
   63    49    >   FETCH_OBJ_R                                      ~29     'library'
         50        INIT_METHOD_CALL                                         ~29, 'newMovie'
         51        SEND_VAR_EX                                              !0
         52        DO_FCALL                                      0          
   66    53    >   FETCH_THIS                                       ~31     
         54      > RETURN                                                   ~31
   67    55*     > RETURN                                                   null

End of function movieis

Function moviedirectoris:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  movieDirectorIs
number of ops:  6
compiled vars:  !0 = $director
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   69     0  E >   RECV                                             !0      
   71     1        ASSIGN_OBJ                                               'movieDirector'
          2        OP_DATA                                                  !0
   73     3        FETCH_THIS                                       ~2      
          4      > RETURN                                                   ~2
   74     5*     > RETURN                                                   null

End of function moviedirectoris

Function movietitleis:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  movieTitleIs
number of ops:  6
compiled vars:  !0 = $title
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   76     0  E >   RECV                                             !0      
   78     1        ASSIGN_OBJ                                               'movieTitle'
          2        OP_DATA                                                  !0
   80     3        FETCH_THIS                                       ~2      
          4      > RETURN                                                   ~2
   81     5*     > RETURN                                                   null

End of function movietitleis

Function listeris:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  listerIs
number of ops:  8
compiled vars:  !0 = $lister
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   83     0  E >   RECV                                             !0      
   85     1        FETCH_OBJ_R                                      ~1      'library'
          2        INIT_METHOD_CALL                                         ~1, 'listerIs'
          3        SEND_VAR_EX                                              !0
          4        DO_FCALL                                      0          
   87     5        FETCH_THIS                                       ~3      
          6      > RETURN                                                   ~3
   88     7*     > RETURN                                                   null

End of function listeris

End of class east\movie\library\finder\selector.

Class east\movie\library\finder:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  __construct
number of ops:  8
compiled vars:  !0 = $selector
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  103     0  E >   RECV_INIT                                        !0      null
  105     1        JMP_SET                                          ~2      !0, ->5
          2        NEW                                              $3      'east%5Cmovie%5Clibrary%5Cfinder%5Cselector'
          3        DO_FCALL                                      0          
          4        QM_ASSIGN                                        ~2      $3
          5        ASSIGN_OBJ                                               'selector'
          6        OP_DATA                                                  ~2
  106     7      > RETURN                                                   null

End of function __construct

Function directorshouldbe:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  directorShouldBe
number of ops:  12
compiled vars:  !0 = $director, !1 = $finder
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  108     0  E >   RECV                                             !0      
  110     1        FETCH_THIS                                       ~2      
          2        CLONE                                            ~3      ~2
          3        ASSIGN                                                   !1, ~3
  111     4        FETCH_OBJ_R                                      ~6      'selector'
          5        INIT_METHOD_CALL                                         ~6, 'directorShouldBe'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0  $7      
          8        ASSIGN_OBJ                                               !1, 'selector'
          9        OP_DATA                                                  $7
  113    10      > RETURN                                                   !1
  114    11*     > RETURN                                                   null

End of function directorshouldbe

Function titleshouldbe:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  titleShouldBe
number of ops:  12
compiled vars:  !0 = $title, !1 = $finder
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  116     0  E >   RECV                                             !0      
  118     1        FETCH_THIS                                       ~2      
          2        CLONE                                            ~3      ~2
          3        ASSIGN                                                   !1, ~3
  119     4        FETCH_OBJ_R                                      ~6      'selector'
          5        INIT_METHOD_CALL                                         ~6, 'titleShouldBe'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0  $7      
          8        ASSIGN_OBJ                                               !1, 'selector'
          9        OP_DATA                                                  $7
  121    10      > RETURN                                                   !1
  122    11*     > RETURN                                                   null

End of function titleshouldbe

Function movieis:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  movieIs
number of ops:  8
compiled vars:  !0 = $movie
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  124     0  E >   RECV                                             !0      
  126     1        FETCH_OBJ_R                                      ~1      'selector'
          2        INIT_METHOD_CALL                                         ~1, 'movieIs'
          3        SEND_VAR_EX                                              !0
          4        DO_FCALL                                      0          
  128     5        FETCH_THIS                                       ~3      
          6      > RETURN                                                   ~3
  129     7*     > RETURN                                                   null

End of function movieis

Function libraryis:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  libraryIs
number of ops:  17
compiled vars:  !0 = $library, !1 = $finder
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  131     0  E >   RECV                                             !0      
  133     1        FETCH_THIS                                       ~2      
          2        CLONE                                            ~3      ~2
          3        ASSIGN                                                   !1, ~3
  134     4        FETCH_OBJ_R                                      ~6      'selector'
          5        INIT_METHOD_CALL                                         ~6, 'libraryIs'
          6        NEW                                              $7      'east%5Cmovie%5Clibrary'
          7        DO_FCALL                                      0          
          8        SEND_VAR_NO_REF_EX                                       $7
          9        DO_FCALL                                      0  $9      
         10        ASSIGN_OBJ                                               !1, 'selector'
         11        OP_DATA                                                  $9
  136    12        INIT_METHOD_CALL                                         !0, 'finderIs'
         13        SEND_VAR_EX                                              !1
         14        DO_FCALL                                      0          
  138    15      > RETURN                                                   !1
  139    16*     > RETURN                                                   null

End of function libraryis

Function listeris:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  listerIs
number of ops:  8
compiled vars:  !0 = $lister
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  141     0  E >   RECV                                             !0      
  143     1        FETCH_OBJ_R                                      ~1      'selector'
          2        INIT_METHOD_CALL                                         ~1, 'listerIs'
          3        SEND_VAR_EX                                              !0
          4        DO_FCALL                                      0          
  145     5        FETCH_THIS                                       ~3      
          6      > RETURN                                                   ~3
  146     7*     > RETURN                                                   null

End of function listeris

End of class east\movie\library\finder.

Class east\movie\library:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  __construct
number of ops:  3
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  163     0  E >   ASSIGN_OBJ                                               'movies'
          1        OP_DATA                                                  <array>
  164     2      > RETURN                                                   null

End of function __construct

Function newmovie:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/kskSY
function name:  newMovie
number of ops:  7
compiled vars:  !0 = $movie
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  166     0  E >   RECV                                             !0      
  168     1        FETCH_OBJ_W                                      $1      'movies'
          2        ASSIGN_DIM                                               $1
          3        OP_DATA                                                  !0
  170     4        FETCH_THIS                                       ~3      
          5      > RETURN                                                   ~3
  171     6*     > RETURN                                                   null

End of function newmovie

Function finderis:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/kskSY
function name:  finderIs
number of ops:  12
compiled vars:  !0 = $finder, !1 = $movie
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  173     0  E >   RECV                                             !0      
  175     1        FETCH_OBJ_R                                      ~2      'movies'
          2      > FE_RESET_R                                       $3      ~2, ->8
          3    > > FE_FETCH_R                                               $3, !1, ->8
  177     4    >   INIT_METHOD_CALL                                         !0, 'movieIs'
          5        SEND_VAR_EX                                              !1
          6        DO_FCALL                                      0          
  175     7      > JMP                                                      ->3
          8    >   FE_FREE                                                  $3
  180     9        FETCH_THIS                                       ~5      
         10      > RETURN                                                   ~5
  181    11*     > RETURN                                                   null

End of function finderis

Function listeris:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 8
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 8
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/kskSY
function name:  listerIs
number of ops:  12
compiled vars:  !0 = $lister, !1 = $movie
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  183     0  E >   RECV                                             !0      
  185     1        FETCH_OBJ_R                                      ~2      'movies'
          2      > FE_RESET_R                                       $3      ~2, ->8
          3    > > FE_FETCH_R                                               $3, !1, ->8
  187     4    >   INIT_METHOD_CALL                                       

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
178.84 ms | 1428 KiB | 17 Q