3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php error_reporting(E_ALL); echo 'Checking if __DIR__ is defined...' . PHP_EOL; if (!defined('__DIR__')) { echo 'Nope, defined() returned (bool)false.' . PHP_EOL; echo 'No prob. Executing define(\'__DIR__\', \'/foo/bar\')...' . PHP_EOL; define('__DIR__', '/foo/bar'); echo 'Done, defined __DIR__ as "/foo/bar".' . PHP_EOL . PHP_EOL; echo 'Double-checking __DIR__ is defined now...' . PHP_EOL; if (!defined('__DIR__')) { echo 'WTF, defined(\'__DIR__\') again returned (bool)false?!' . PHP_EOL; } else{ echo 'Strike, this time defined(\'__DIR__\') returned (bool)true.' . PHP_EOL; } } else{ echo 'Yep, defined(\'__DIR__\') returned (bool)true.' . PHP_EOL; } echo 'Finally, here is the result of var_dump(__DIR__):' . PHP_EOL; var_dump(__DIR__);
Output for 5.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
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.10 - 4.4.9, 5.0.2 - 5.2.17
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"
Output for 4.3.0 - 4.3.9, 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 4 Checking if __DIR__ is defined...PHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 6 Nope, defined() returned (bool)false.PHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 8 No prob. Executing define('__DIR__', '/foo/bar')...PHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 11 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 11 Done, defined __DIR__ as "/foo/bar".PHP_EOLPHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 13 Double-checking __DIR__ is defined now...PHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 18 Strike, this time defined('__DIR__') returned (bool)true.PHP_EOL Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/DRKND on line 24 Finally, here is the result of var_dump(__DIR__):PHP_EOLstring(8) "/foo/bar"