$30 off During Our Annual Pro Sale. View Details »

PHP Magic Tricks

PHP Magic Tricks

As a part of our joint #xmasmeetup we played a game called PHP Magic Tricks. Solutions were submitted on github.com/chr-hertel/php-magic-tricks.

Christopher Hertel

December 20, 2017
Tweet

More Decks by Christopher Hertel

Other Decks in Programming

Transcript

  1. PHP Magic Tricks
    Symfony User Group Berlin

    View Slide

  2. DISCLAIMER

    View Slide

  3. TRY THIS
    AT HOME

    View Slide

  4. DON‘T DO THIS
    TO YOUR PROJECT

    View Slide

  5. Trick #1
    Twisted truth

    View Slide

  6. // Insert Magic Code Here
    var_dump(true === false);
    Code
    bool(true)
    Output
    Trick #1
    Twisted truth

    View Slide

  7. Trick #2
    Sum Sum Sum

    View Slide

  8. // Insert Magic Code Here
    var_dump(count($array), array_sum($array));
    $array[0] = 1;
    $array[1] = 2;
    $array[2] = 3;
    var_dump(count($array), array_sum($array));
    Code
    Trick #2
    Sum Sum Sum

    View Slide

  9. int(3)
    int(0)
    int(3)
    int(9)
    Output
    Trick #2
    Sum Sum Sum

    View Slide

  10. Trick #3
    EvilVar

    View Slide

  11. // Insert Magic Code Here (4 lines)
    eval($$$$var);
    Code
    Hello World
    Output
    Trick #3
    EvilVar

    View Slide

  12. Trick #4
    Weird assignment

    View Slide

  13. Trick #4
    Weird assignment
    // Insert Magic Code Here (10 lines)
    $var = 'Hello!';
    echo $var;
    Code
    World!
    Output

    View Slide

  14. Trick #5
    Count on me

    View Slide

  15. Trick #5
    Count on me
    // Insert Magic Code Here
    for ($i = 0; $i <= count($data); $i++){
    $data++;
    }
    echo $data;
    Code
    Hello
    Output

    View Slide

  16. Trick #6
    PHP in the middle

    View Slide

  17. Trick #6
    PHP in the middle
    // Insert Magic Code Here (6 lines)
    echo 'Hello';
    echo 'World';
    Code
    Hello PHP World
    Output

    View Slide

  18. Trick #7
    Mad World

    View Slide

  19. Trick #7
    Mad World
    // Insert Magic Code Here (3 lines)
    echo 'Foobar';
    echo PHP_EOL;
    echo 'Hello World';
    Code
    dlroW olleH
    rabooF
    Output

    View Slide

  20. RULES

    View Slide

  21. • replace „Insert Magic Code Here“ comments
    • no script termination
    return, exit, die, __halt_compiler, etc…
    • all lines executed on runtime
    • no additional eval
    RULES

    View Slide

  22. • Fork github.com/chr-hertel/php-magic-tricks
    • Your solutions as pull request
    • My solutions later tonight
    RULES

    View Slide

  23. CREDITS

    View Slide

  24. all anonymous
    PHP devs on 3V4L.org

    View Slide