3v4l.org

run code in 300+ PHP versions simultaneously
<?php /*{ "_id" : ObjectId("595baefce2810a6a8a94fe2d"), "user" : "1234abc", "type" : "session-started", "name" : "moja o sesja", "reference_id" : "hippo-123", "created_on" : ISODate("2017-01-01T01:01:01.123Z") }*/ class A { private static $_id = 0x10a6a8a94fe2d; private $user; private $type; private $reference_id; private $created_on; public function __construct($user, $type, $reference_id, $created_on) { $this->user = $user; $this->type = $type; $this->reference_id = $reference_id; $this->created_on = $created_on; } public function __toString() { return sprintf('{ "_id": ObjectId("595baefce29%x"), "user": "%s", "type": "%s", "name": "my %s", "reference_id": "%s%s", "created_on": ISODate("%s.000Z") }', ++self::$_id, $this->user, $this->type, $this->type, $this->user, $this->reference_id ? 'hippo-' . $this->reference_id : '', $this->created_on ); } } $history = [ new A('5943a756fe986c4e74367267', 'onboarded', '', '2017-01-01T01:01:01'), new A('5943a756fe986c4e74367267', 'category_activated', 11, '2017-01-01T01:02:01'), new A('5943a756fe986c4e74367267', 'category_started', 11, '2017-01-01T01:03:01'), new A('5943a756fe986c4e74367267', 'series_started', 21, '2017-01-01T01:04:01'), new A('5943a756fe986c4e74367267', 'session_started', 31, '2017-01-01T01:05:01'), new A('5943a756fe986c4e74367267', 'session_progress_updated', 31, '2017-01-01T01:06:01'), new A('5943a756fe986c4e74367267', 'session_completed', 31, '2017-01-01T01:07:01'), new A('5943a756fe986c4e74367267', 'session_started', 32, '2017-01-01T01:08:01'), new A('5943a756fe986c4e74367267', 'session_completed', 32, '2017-01-01T01:09:01'), // seesion completed (2/2) new A('5943a756fe986c4e74367267', 'session_started', 33, '2017-01-02T01:10:01'), new A('5943a756fe986c4e74367267', 'session_completed', 33, '2017-01-02T01:11:01'), // session completed (1/1) new A('5943a756fe986c4e74367267', 'session_started', 34, '2017-01-03T01:12:01'), // session started (0/1) new A('5943a756fe986c4e74367267', 'session_completed', 34, '2017-01-04T01:13:01'), // session completed (1/1) new A('5943a756fe986c4e74367268', 'onboarded', '', '2017-01-01T01:01:01'), new A('5943a756fe986c4e74367268', 'category_activated', 11, '2017-01-01T01:02:01'), new A('5943a756fe986c4e74367268', 'category_started', 11, '2017-01-01T01:03:01'), new A('5943a756fe986c4e74367268', 'series_started', 21, '2017-01-01T01:04:01'), new A('5943a756fe986c4e74367268', 'session_started', 31, '2017-01-01T01:05:01'), new A('5943a756fe986c4e74367268', 'session_progress_updated', 31, '2017-01-01T01:06:01'), new A('5943a756fe986c4e74367268', 'session_completed', 31, '2017-01-01T01:07:01'), new A('5943a756fe986c4e74367267', 'session_started', 35, '2017-01-05T01:14:01'), new A('5943a756fe986c4e74367267', 'session_progress_updated', 35, '2017-01-05T01:15:01'), new A('5943a756fe986c4e74367267', 'session_completed', 35, '2017-01-05T01:16:01'), new A('5943a756fe986c4e74367267', 'session_started', 36, '2017-01-05T01:17:01'), // session started (1/2) new A('5943a756fe986c4e74367267', 'session_skipped', 36, '2017-01-06T01:18:01'), // session skipped (0/1) new A('5943a756fe986c4e74367267', 'session_started', 37, '2017-01-07T01:19:01'), new A('5943a756fe986c4e74367267', 'session_completed', 37, '2017-01-07T01:20:01'), // session completed (1/1) //new A('5943a756fe986c4e74367267', 'session_started', 34, '2017-01-09T01:21:01'), // day skipped new A('5943a756fe986c4e74367267', 'session_started', 38, '2017-01-09T01:21:01'), new A('5943a756fe986c4e74367267', 'session_completed', 38, '2017-01-09T01:21:01'), ]; echo 'db.activities.insertMany([' . implode(',', $history) . ']);';
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/jmmku
function name:  (null)
number of ops:  213
compiled vars:  !0 = $history
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   12     0  E >   DECLARE_CLASS                                            'a'
   49     1        NEW                                              $1      'A'
          2        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
          3        SEND_VAL_EX                                              'onboarded'
          4        SEND_VAL_EX                                              ''
          5        SEND_VAL_EX                                              '2017-01-01T01%3A01%3A01'
          6        DO_FCALL                                      0          
          7        INIT_ARRAY                                       ~3      $1
   50     8        NEW                                              $4      'A'
          9        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         10        SEND_VAL_EX                                              'category_activated'
         11        SEND_VAL_EX                                              11
         12        SEND_VAL_EX                                              '2017-01-01T01%3A02%3A01'
         13        DO_FCALL                                      0          
         14        ADD_ARRAY_ELEMENT                                ~3      $4
   51    15        NEW                                              $6      'A'
         16        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         17        SEND_VAL_EX                                              'category_started'
         18        SEND_VAL_EX                                              11
         19        SEND_VAL_EX                                              '2017-01-01T01%3A03%3A01'
         20        DO_FCALL                                      0          
         21        ADD_ARRAY_ELEMENT                                ~3      $6
   52    22        NEW                                              $8      'A'
         23        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         24        SEND_VAL_EX                                              'series_started'
         25        SEND_VAL_EX                                              21
         26        SEND_VAL_EX                                              '2017-01-01T01%3A04%3A01'
         27        DO_FCALL                                      0          
         28        ADD_ARRAY_ELEMENT                                ~3      $8
   53    29        NEW                                              $10     'A'
         30        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         31        SEND_VAL_EX                                              'session_started'
         32        SEND_VAL_EX                                              31
         33        SEND_VAL_EX                                              '2017-01-01T01%3A05%3A01'
         34        DO_FCALL                                      0          
         35        ADD_ARRAY_ELEMENT                                ~3      $10
   54    36        NEW                                              $12     'A'
         37        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         38        SEND_VAL_EX                                              'session_progress_updated'
         39        SEND_VAL_EX                                              31
         40        SEND_VAL_EX                                              '2017-01-01T01%3A06%3A01'
         41        DO_FCALL                                      0          
         42        ADD_ARRAY_ELEMENT                                ~3      $12
   55    43        NEW                                              $14     'A'
         44        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         45        SEND_VAL_EX                                              'session_completed'
         46        SEND_VAL_EX                                              31
         47        SEND_VAL_EX                                              '2017-01-01T01%3A07%3A01'
         48        DO_FCALL                                      0          
         49        ADD_ARRAY_ELEMENT                                ~3      $14
   56    50        NEW                                              $16     'A'
         51        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         52        SEND_VAL_EX                                              'session_started'
         53        SEND_VAL_EX                                              32
         54        SEND_VAL_EX                                              '2017-01-01T01%3A08%3A01'
         55        DO_FCALL                                      0          
         56        ADD_ARRAY_ELEMENT                                ~3      $16
   57    57        NEW                                              $18     'A'
         58        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         59        SEND_VAL_EX                                              'session_completed'
         60        SEND_VAL_EX                                              32
         61        SEND_VAL_EX                                              '2017-01-01T01%3A09%3A01'
         62        DO_FCALL                                      0          
         63        ADD_ARRAY_ELEMENT                                ~3      $18
   58    64        NEW                                              $20     'A'
         65        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         66        SEND_VAL_EX                                              'session_started'
         67        SEND_VAL_EX                                              33
         68        SEND_VAL_EX                                              '2017-01-02T01%3A10%3A01'
         69        DO_FCALL                                      0          
         70        ADD_ARRAY_ELEMENT                                ~3      $20
   59    71        NEW                                              $22     'A'
         72        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         73        SEND_VAL_EX                                              'session_completed'
         74        SEND_VAL_EX                                              33
         75        SEND_VAL_EX                                              '2017-01-02T01%3A11%3A01'
         76        DO_FCALL                                      0          
         77        ADD_ARRAY_ELEMENT                                ~3      $22
   60    78        NEW                                              $24     'A'
         79        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         80        SEND_VAL_EX                                              'session_started'
         81        SEND_VAL_EX                                              34
         82        SEND_VAL_EX                                              '2017-01-03T01%3A12%3A01'
         83        DO_FCALL                                      0          
         84        ADD_ARRAY_ELEMENT                                ~3      $24
   61    85        NEW                                              $26     'A'
         86        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
         87        SEND_VAL_EX                                              'session_completed'
         88        SEND_VAL_EX                                              34
         89        SEND_VAL_EX                                              '2017-01-04T01%3A13%3A01'
         90        DO_FCALL                                      0          
         91        ADD_ARRAY_ELEMENT                                ~3      $26
   62    92        NEW                                              $28     'A'
         93        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
         94        SEND_VAL_EX                                              'onboarded'
         95        SEND_VAL_EX                                              ''
         96        SEND_VAL_EX                                              '2017-01-01T01%3A01%3A01'
         97        DO_FCALL                                      0          
         98        ADD_ARRAY_ELEMENT                                ~3      $28
   63    99        NEW                                              $30     'A'
        100        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        101        SEND_VAL_EX                                              'category_activated'
        102        SEND_VAL_EX                                              11
        103        SEND_VAL_EX                                              '2017-01-01T01%3A02%3A01'
        104        DO_FCALL                                      0          
        105        ADD_ARRAY_ELEMENT                                ~3      $30
   64   106        NEW                                              $32     'A'
        107        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        108        SEND_VAL_EX                                              'category_started'
        109        SEND_VAL_EX                                              11
        110        SEND_VAL_EX                                              '2017-01-01T01%3A03%3A01'
        111        DO_FCALL                                      0          
        112        ADD_ARRAY_ELEMENT                                ~3      $32
   65   113        NEW                                              $34     'A'
        114        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        115        SEND_VAL_EX                                              'series_started'
        116        SEND_VAL_EX                                              21
        117        SEND_VAL_EX                                              '2017-01-01T01%3A04%3A01'
        118        DO_FCALL                                      0          
        119        ADD_ARRAY_ELEMENT                                ~3      $34
   66   120        NEW                                              $36     'A'
        121        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        122        SEND_VAL_EX                                              'session_started'
        123        SEND_VAL_EX                                              31
        124        SEND_VAL_EX                                              '2017-01-01T01%3A05%3A01'
        125        DO_FCALL                                      0          
        126        ADD_ARRAY_ELEMENT                                ~3      $36
   67   127        NEW                                              $38     'A'
        128        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        129        SEND_VAL_EX                                              'session_progress_updated'
        130        SEND_VAL_EX                                              31
        131        SEND_VAL_EX                                              '2017-01-01T01%3A06%3A01'
        132        DO_FCALL                                      0          
        133        ADD_ARRAY_ELEMENT                                ~3      $38
   68   134        NEW                                              $40     'A'
        135        SEND_VAL_EX                                              '5943a756fe986c4e74367268'
        136        SEND_VAL_EX                                              'session_completed'
        137        SEND_VAL_EX                                              31
        138        SEND_VAL_EX                                              '2017-01-01T01%3A07%3A01'
        139        DO_FCALL                                      0          
        140        ADD_ARRAY_ELEMENT                                ~3      $40
   69   141        NEW                                              $42     'A'
        142        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        143        SEND_VAL_EX                                              'session_started'
        144        SEND_VAL_EX                                              35
        145        SEND_VAL_EX                                              '2017-01-05T01%3A14%3A01'
        146        DO_FCALL                                      0          
        147        ADD_ARRAY_ELEMENT                                ~3      $42
   70   148        NEW                                              $44     'A'
        149        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        150        SEND_VAL_EX                                              'session_progress_updated'
        151        SEND_VAL_EX                                              35
        152        SEND_VAL_EX                                              '2017-01-05T01%3A15%3A01'
        153        DO_FCALL                                      0          
        154        ADD_ARRAY_ELEMENT                                ~3      $44
   71   155        NEW                                              $46     'A'
        156        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        157        SEND_VAL_EX                                              'session_completed'
        158        SEND_VAL_EX                                              35
        159        SEND_VAL_EX                                              '2017-01-05T01%3A16%3A01'
        160        DO_FCALL                                      0          
        161        ADD_ARRAY_ELEMENT                                ~3      $46
   72   162        NEW                                              $48     'A'
        163        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        164        SEND_VAL_EX                                              'session_started'
        165        SEND_VAL_EX                                              36
        166        SEND_VAL_EX                                              '2017-01-05T01%3A17%3A01'
        167        DO_FCALL                                      0          
        168        ADD_ARRAY_ELEMENT                                ~3      $48
   73   169        NEW                                              $50     'A'
        170        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        171        SEND_VAL_EX                                              'session_skipped'
        172        SEND_VAL_EX                                              36
        173        SEND_VAL_EX                                              '2017-01-06T01%3A18%3A01'
        174        DO_FCALL                                      0          
        175        ADD_ARRAY_ELEMENT                                ~3      $50
   74   176        NEW                                              $52     'A'
        177        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        178        SEND_VAL_EX                                              'session_started'
        179        SEND_VAL_EX                                              37
        180        SEND_VAL_EX                                              '2017-01-07T01%3A19%3A01'
        181        DO_FCALL                                      0          
        182        ADD_ARRAY_ELEMENT                                ~3      $52
   75   183        NEW                                              $54     'A'
        184        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        185        SEND_VAL_EX                                              'session_completed'
        186        SEND_VAL_EX                                              37
        187        SEND_VAL_EX                                              '2017-01-07T01%3A20%3A01'
        188        DO_FCALL                                      0          
        189        ADD_ARRAY_ELEMENT                                ~3      $54
   77   190        NEW                                              $56     'A'
        191        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        192        SEND_VAL_EX                                              'session_started'
        193        SEND_VAL_EX                                              38
        194        SEND_VAL_EX                                              '2017-01-09T01%3A21%3A01'
        195        DO_FCALL                                      0          
        196        ADD_ARRAY_ELEMENT                                ~3      $56
   78   197        NEW                                              $58     'A'
        198        SEND_VAL_EX                                              '5943a756fe986c4e74367267'
        199        SEND_VAL_EX                                              'session_completed'
        200        SEND_VAL_EX                                              38
        201        SEND_VAL_EX                                              '2017-01-09T01%3A21%3A01'
        202        DO_FCALL                                      0          
        203        ADD_ARRAY_ELEMENT                                ~3      $58
   48   204        ASSIGN                                                   !0, ~3
   80   205        INIT_FCALL                                               'implode'
        206        SEND_VAL                                                 '%2C'
        207        SEND_VAR                                                 !0
        208        DO_ICALL                                         $61     
        209        CONCAT                                           ~62     'db.activities.insertMany%28%5B', $61
        210        CONCAT                                           ~63     ~62, '%5D%29%3B'
        211        ECHO                                                     ~63
        212      > RETURN                                                   1

Class A:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/jmmku
function name:  __construct
number of ops:  13
compiled vars:  !0 = $user, !1 = $type, !2 = $reference_id, !3 = $created_on
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   20     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
   21     4        ASSIGN_OBJ                                               'user'
          5        OP_DATA                                                  !0
   22     6        ASSIGN_OBJ                                               'type'
          7        OP_DATA                                                  !1
   23     8        ASSIGN_OBJ                                               'reference_id'
          9        OP_DATA                                                  !2
   24    10        ASSIGN_OBJ                                               'created_on'
         11        OP_DATA                                                  !3
   25    12      > RETURN                                                   null

End of function __construct

Function __tostring:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 18
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/jmmku
function name:  __toString
number of ops:  27
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   INIT_FCALL                                               'sprintf'
          1        SEND_VAL                                                 '%7B%0A++++++++++++%22_id%22%3A+ObjectId%28%22595baefce29%25x%22%29%2C%0A++++++++++++%22user%22%3A+%22%25s%22%2C%0A++++++++++++%22type%22%3A+%22%25s%22%2C%0A++++++++++++%22name%22%3A+%22my+%25s%22%2C%0A++++++++++++%22reference_id%22%3A+%22%25s%25s%22%2C%0A++++++++++++%22created_on%22%3A+ISODate%28%22%25s.000Z%22%29%0A++++++++%7D'
   37     2        PRE_INC_STATIC_PROP                              ~0      '_id'
          3        SEND_VAL                                                 ~0
   38     4        FETCH_OBJ_R                                      ~1      'user'
          5        SEND_VAL                                                 ~1
   39     6        FETCH_OBJ_R                                      ~2      'type'
          7        SEND_VAL                                                 ~2
   40     8        FETCH_OBJ_R                                      ~3      'type'
          9        SEND_VAL                                                 ~3
   41    10        FETCH_OBJ_R                                      ~4      'user'
         11        SEND_VAL                                                 ~4
   42    12        FETCH_OBJ_R                                      ~5      'reference_id'
         13      > JMPZ                                                     ~5, ->18
         14    >   FETCH_OBJ_R                                      ~6      'reference_id'
         15        CONCAT                                           ~7      'hippo-', ~6
         16        QM_ASSIGN                                        ~8      ~7
         17      > JMP                                                      ->19
         18    >   QM_ASSIGN                                        ~8      ''
         19    >   SEND_VAL                                                 ~8
   43    20        FETCH_OBJ_R                                      ~9      'created_on'
         21        SEND_VAL                                                 ~9
         22        DO_ICALL                                         $10     
         23        VERIFY_RETURN_TYPE                                       $10
         24      > RETURN                                                   $10
   45    25*       VERIFY_RETURN_TYPE                                       
         26*     > RETURN                                                   null

End of function __tostring

End of class A.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.9 ms | 1408 KiB | 17 Q