Slide 1

Slide 1 text

PHP Magic Tricks Symfony User Group Berlin

Slide 2

Slide 2 text

DISCLAIMER

Slide 3

Slide 3 text

TRY THIS AT HOME

Slide 4

Slide 4 text

DON‘T DO THIS TO YOUR PROJECT

Slide 5

Slide 5 text

Trick #1 Twisted truth

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Trick #2 Sum Sum Sum

Slide 8

Slide 8 text

// 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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Trick #3 EvilVar

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Trick #4 Weird assignment

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Trick #5 Count on me

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Trick #6 PHP in the middle

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Trick #7 Mad World

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

RULES

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

CREDITS

Slide 24

Slide 24 text

all anonymous PHP devs on 3V4L.org