3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php error_reporting(E_ALL); echo 'Here is __DIR__ to start: ' . "\n"; var_dump(__DIR__); echo "\n\n"; echo 'Checking if __DIR__ is defined...' . "\n"; if (!defined('__DIR__')) { echo 'Nope, defined() returned (bool)false.' . "\n"; echo 'No prob. Executing define(\'__DIR__\', \'/foo/bar\')...' . "\n"; define('__DIR__', '/foo/bar'); echo 'Done, defined __DIR__ as "/foo/bar".' . "\n" . "\n"; echo 'Double-checking __DIR__ is defined now...' . "\n"; if (!defined('__DIR__')) { echo 'WTF, defined(\'__DIR__\') again returned (bool)false?!' . "\n"; } else{ echo 'Strike, this time defined(\'__DIR__\') returned (bool)true.' . "\n"; } } else{ echo 'Yep, defined(\'__DIR__\') returned (bool)true.' . "\n"; } echo 'Finally, here is the result of var_dump(__DIR__):' . "\n"; var_dump(__DIR__);
Output for 5.3.0 - 7.1.0
Here is __DIR__ to start: string(3) "/in" Checking if __DIR__ is defined... Nope, defined() returned (bool)false. No prob. Executing define('__DIR__', '/foo/bar')... Done, defined __DIR__ as "/foo/bar". Double-checking __DIR__ is defined now... Strike, this time defined('__DIR__') returned (bool)true. Finally, here is the result of var_dump(__DIR__): string(3) "/in"
Output for 4.3.0 - 5.2.17
Here is __DIR__ to start: Notice: Use of undefined constant __DIR__ - assumed '__DIR__' in /in/Ri9hB on line 5 string(7) "__DIR__" Checking if __DIR__ is defined... Nope, defined() returned (bool)false. No prob. Executing define('__DIR__', '/foo/bar')... Done, defined __DIR__ as "/foo/bar". Double-checking __DIR__ is defined now... Strike, this time defined('__DIR__') returned (bool)true. Finally, here is the result of var_dump(__DIR__): string(8) "/foo/bar"