3v4l.org

run code in 500+ PHP versions simultaneously
<?php $categories = array('Colour', 'Portrait'); $sql = "SELECT p.*\nFROM (\n SELECT '"; $sql .= implode("' AS keyword\n UNION ALL\n SELECT '", $categories); $sql .= "' AS keyWord\n) k\nJOIN photos p ON CONCAT(',', p.keyWords, ',') LIKE CONCAT('%,', k.keyWord, ',%')\n"; $sql .= "GROUP BY p.id\nHAVING COUNT(*) = " . count($categories); echo $sql;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rR1Lm
function name:  (null)
number of ops:  10
compiled vars:  !0 = $categories, !1 = $sql
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
    5     1        ASSIGN                                                       !1, 'SELECT+p.%2A%0AFROM+%28%0A++SELECT+%27'
    6     2        FRAMELESS_ICALL_2                implode             ~4      '%27+AS+keyword%0A++UNION+ALL%0A++SELECT+%27', !0
          3        ASSIGN_OP                                         8          !1, ~4
    7     4        ASSIGN_OP                                         8          !1, '%27+AS+keyWord%0A%29+k%0AJOIN+photos+p+ON+CONCAT%28%27%2C%27%2C+p.keyWords%2C+%27%2C%27%29+LIKE+CONCAT%28%27%25%2C%27%2C+k.keyWord%2C+%27%2C%25%27%29%0A'
    8     5        COUNT                                                ~7      !0
          6        CONCAT                                               ~8      'GROUP+BY+p.id%0AHAVING+COUNT%28%2A%29+%3D+', ~7
          7        ASSIGN_OP                                         8          !1, ~8
   10     8        ECHO                                                         !1
   11     9      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
157.68 ms | 2147 KiB | 13 Q