3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php /* This file is part of yourTinyTodo by the yourTinyTodo community. Copyrights for portions of this file are retained by their owners. Based on myTinyTodo by Max Pozdeev (C) Copyright 2009-2010 Max Pozdeev <maxpozdeev@gmail.com> Licensed under the GNU GPL v3 license. See file COPYRIGHT for details. */ header("Content-type: text/html; charset=utf-8"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php yttinfo('title'); ?></title> <link rel="stylesheet" type="text/css" href="<?php yttinfo('template_url'); ?>style.css?v=<?=YTT_VERSION?>" media="all" /> <?php if(Config::get('rtl')): ?> <link rel="stylesheet" type="text/css" href="<?php yttinfo('template_url'); ?>style_rtl.css?v=<?=YTT_VERSION?>" media="all" /> <?php endif; ?> <?php if(isset($_GET['pda'])): ?> <meta name="viewport" id="viewport" content="width=device-width" /> <link rel="stylesheet" type="text/css" href="<?php yttinfo('template_url'); ?>pda.css?v=<?=YTT_VERSION?>" media="all" /> <?php else: ?> <link rel="stylesheet" type="text/css" href="<?php yttinfo('template_url'); ?>print.css?v=<?=YTT_VERSION?>" media="print" /> <?php endif; ?> </head> <body> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>jquery/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>jquery/jquery-ui-1.8.18.custom.min.js"></script> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>jquery/jquery.autocomplete-1.1.js"></script> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>yourtinytodo.js?v=<?=YTT_VERSION?>"></script> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>yourtinytodo_lang.php?v=<?=YTT_VERSION?>"></script> <script type="text/javascript" src="<?php yttinfo('ytt_url'); ?>yourtinytodo_ajax_storage.js?v=<?=YTT_VERSION?>"></script> <script type="text/javascript"> $().ready(function(){ <?php if(isset($_GET['pda'])): ?> $('body').width(screen.width); $(window).resize(function() { $('body').width(screen.width); }); <?php endif; ?> yourtinytodo.yttUrl = "<?php yttinfo('ytt_url'); ?>"; yourtinytodo.templateUrl = "<?php yttinfo('template_url'); ?>"; yourtinytodo.db = new yourtinytodoStorageAjax(yourtinytodo); yourtinytodo.init({ needAuth: <?php echo $needAuth ? "true" : "false"; ?>, multiUser: <?php echo $multiUser ? "true" : "false"; ?>, admin: <?php echo is_admin() ? "true" : "false"; ?>, readOnly: <?php echo is_readonly() ? "true" : "false"; ?>, userId: <?php echo (!empty($_SESSION['userid']))?$_SESSION['userid']:'null'; ?>, userRole: <?php echo (!empty($_SESSION['role']))?$_SESSION['role']:'null'; ?>, isLogged: <?php echo ($needAuth && is_logged()) ? "true" : "false"; ?>, showdate: <?php echo (Config::get('showdate') && !isset($_GET['pda'])) ? "true" : "false"; ?>, singletab: <?php echo (isset($_GET['singletab']) || isset($_GET['pda'])) ? "true" : "false"; ?>, duedatepickerformat: "<?php echo htmlspecialchars(Config::get('dateformat2')); ?>", firstdayofweek: <?php echo (int) Config::get('firstdayofweek'); ?>, autotag: <?php echo Config::get('autotag') ? "true" : "false"; ?> <?php if(isset($_GET['list'])) echo ",openList: ". (int)$_GET['list']; ?> <?php if(isset($_GET['pda'])) echo ", touchDevice: true"; ?> }).loadLists(1); }); </script> <div id="wrapper"> <div id="container"> <div id="ytt_body"> <h2><?php yttinfo('title'); ?></h2> <div id="loading"></div> <div id="bar"> <div id="msg"><span class="msg-text"></span><div class="msg-details"></div></div> <div class="bar-menu"> <span class="menu-owner" style="display:none"> <a href="#settings" id="settings"><?php _e('a_settings');?></a> </span> <span class="bar-delim" style="display:none"> | </span> <span id="bar_auth"> <span id="bar_public" style="display:none"><?php _e('public_tasks');?> |</span> <a href="#login" id="bar_login" class="nodecor"><u><?php _e('a_login');?></u> <span class="arrdown"></span></a> <a href="#logout" id="bar_logout"><?php _e('a_logout');?></a> </span> </div> </div> <br clear="all" /> <div id="page_tasks" style="display:none"> <div id="lists"> <ul class="ytt-tabs"></ul> <div class="ytt-tabs-add-button" title="<?php _e('list_new'); ?>"><span></span></div> <div id="tabs_buttons"> <div class="ytt-tabs-select-button ytt-tabs-button" title="<?php _e('list_select'); ?>"><span></span></div> </div> <div id="list_all" class="ytt-tab ytt-tabs-alltasks ytt-tabs-hidden"><a href="#alltasks"><span><?php _e('alltasks'); ?></span></a><div class="list-action"></div></div> </div> <div id="toolbar" class="ytt-htabs"> <div id="htab_search"> <table class="ytt-searchbox"><tr><td> <div class="ytt-searchbox-c"> <input type="text" name="search" value="" maxlength="250" id="search" autocomplete="off" /> <div class="ytt-searchbox-icon ytt-icon-search"></div> <div id="search_close" class="ytt-searchbox-icon ytt-icon-cancelsearch"></div> </div> </td></tr></table> </div> <div id="htab_newtask"> <table class="ytt-taskbox"><tr><td class="ytt-tb-cell"> <div class="ytt-tb-c"> <form id="newtask_form" method="post" action=""> <label id="task_placeholder" class="placeholding" for="task"> <input type="text" name="task" value="" maxlength="250" id="task" autocomplete="off" /> <span><?php _e('htab_newtask');?></span> </label> <div id="newtask_submit" class="ytt-taskbox-icon ytt-icon-submittask" title="<?php _e('btn_add');?>"></div> </form> </div> </td> <td><a href="#" id="newtask_adv" class="ytt-img-button" title="<?php _e('advanced_add');?>"><span></span></a></td> </tr></table> </div> <div id="searchbar" style="display:none"><?php _e('searching');?> <span id="searchbarkeyword"></span></div> <div style="clear:both"></div> </div> <h3> <span id="taskview" class="ytt-menu-button"><span class="btnstr"><?php _e('tasks');?></span> (<span id="total">0</span>) <span class="arrdown"></span></span> <span class="ytt-notes-showhide"><?php _e('notes');?> <a href="#" id="ytt-notes-show"><?php _e('notes_show');?></a> / <a href="#" id="ytt-notes-hide"><?php _e('notes_hide');?></a></span> <span id="ytt_filters"></span> <span id="tagcloudbtn" class="ytt-menu-button"><?php _e('tagcloud');?> <span class="arrdown2"></span></span> </h3> <div id="taskcontainer"> <ol id="tasklist" class="sortable"></ol> </div> </div> <!-- end of page_tasks --> <div id="page_taskedit" style="display:none"> <div><a href="#" class="ytt-back-button"><?php _e('go_back');?></a></div> <h3 class="ytt-inadd"><?php _e('add_task');?></h3> <h3 class="ytt-inedit"><?php _e('edit_task');?> <span id="taskedit-date" class="ytt-inedit"> (<span class="date-created" title="<?php _e('taskdate_created');?>"><span>&nbsp;</span></span><span class="date-completed" title="<?php _e('taskdate_completed');?>"> &mdash; <span>&nbsp;</span></span>) </span> </h3> <form id="taskedit_form" name="edittask" method="post" action=""> <input type="hidden" name="isadd" value="0" /> <input type="hidden" name="id" value="" /> <div class="form-row form-row-short" style="display:none"> <span class="h"><?php _e('priority');?></span> <select name="prio"> <option value="2">+2</option><option value="1">+1</option><option value="0" selected="selected">&plusmn;0</option><option value="-1">&minus;1</option> </select> </div> <div class="form-row form-row-short"> <span class="h"><?php _e('due');?> </span> <input name="duedate" id="duedate" value="" class="in100" title="Y-M-D, M/D/Y, D.M.Y, M/D, D.M" autocomplete="off" /> </div> <div class="form-row-short-end"></div> <div class="form-row"><div class="h"><?php _e('task');?></div> <input type="text" name="task" value="" class="in500" maxlength="250" /></div> <div class="form-row"><div class="h"><?php _e('note');?></div> <textarea name="note" class="in500"></textarea></div> <div class="form-row"><div class="h"><?php _e('tags');?></div> <table cellspacing="0" cellpadding="0" width="100%"><tr> <td><input type="text" name="tags" id="edittags" value="" class="in500" maxlength="250" /></td> <td class="alltags-cell"> <a href="#" id="alltags_show"><?php _e('alltags_show');?></a> <a href="#" id="alltags_hide" style="display:none"><?php _e('alltags_hide');?></a></td> </tr></table> </div> <div class="form-row" id="alltags" style="display:none;"><?php _e('alltags');?> <span class="tags-list">&nbsp;</span></div> <div class="form-row form-bottom-buttons"> <input type="submit" value="<?php _e('save');?>" /> <input type="button" id="ytt_edit_cancel" class="ytt-back-button" value="<?php _e('cancel');?>" /> </div> </form> </div> <!-- end of page_taskedit --> <div id="authform" style="display:none"> <form id="login_form" action="" method="post"> <?php if($multiUser) { ?> <div><label for="username"><?php _e('um_username');?></label><input type="text" name="username" id="username" /></div> <div><label for="password"><?php _e('um_password');?></label><input type="password" name="password" id="password" /></div> <div><input type="submit" value="<?php _e('btn_login');?>" /></div> <?php } else { ?> <div class="h"><?php _e('password');?></div> <div><input type="password" name="password" id="password" /></div> <div><input type="submit" value="<?php _e('btn_login');?>" /></div> <?php } ?> </form> </div> <div id="priopopup" style="display:none"> <span class="prio-neg prio-neg-1">&minus;1</span> <span class="prio-zero">&plusmn;0</span> <span class="prio-pos prio-pos-1">+1</span> <span class="prio-pos prio-pos-2">+2</span> </div> <div id="taskviewcontainer" class="ytt-menu-container" style="display:none"> <ul> <li id="view_tasks"><?php _e('tasks');?> (<span id="cnt_total">0</span>)</li> <li id="view_past"><?php _e('f_past');?> (<span id="cnt_past">0</span>)</li> <li id="view_today"><?php _e('f_today');?> (<span id="cnt_today">0</span>)</li> <li id="view_soon"><?php _e('f_soon');?> (<span id="cnt_soon">0</span>)</li> </ul> </div> <div id="tagcloud" style="display:none"> <a id="tagcloudcancel" class="ytt-img-button"><span>&nbsp;</span></a> <div id="tagcloudload"></div> <div id="tagcloudcontent"></div> </div> <?php $show_edit_options = (!isset($_SESSION['role']) || $_SESSION['role'] < 3); ?> <div id="listmenucontainer" class="ytt-menu-container" style="display:none"> <ul> <?php if($show_edit_options) {?><li class="ytt-need-list ytt-need-real-list" id="btnRenameList"><?php _e('list_rename');?></li><?}?> <?php if($show_edit_options) {?><li class="ytt-need-list ytt-need-real-list" id="btnDeleteList"><?php _e('list_delete');?></li><?}?> <?php if($show_edit_options) {?><li class="ytt-need-list ytt-need-real-list" id="btnClearCompleted"><?php _e('list_clearcompleted');?></li><?}?> <?php if($show_edit_options) {?><li class="ytt-need-list ytt-need-real-list ytt-menu-indicator" submenu="listexportmenucontainer"><div class="submenu-icon"></div><?php _e('list_export'); ?></li><?}?> <?php if($show_edit_options) {?><li class="ytt-menu-delimiter ytt-need-real-list"></li><?}?> <?php if($show_edit_options) {?><li class="ytt-need-list ytt-need-real-list" id="btnPublish"><div class="menu-icon"></div><?php _e('list_publish');?></li><?}?> <li class="ytt-need-list ytt-need-real-list" id="btnRssFeed"><div class="menu-icon"></div><?php _e('list_rssfeed');?></li> <li class="ytt-menu-delimiter ytt-need-real-list"></li> <li class="ytt-need-list ytt-need-real-list sort-item" id="sortByHand"><div class="menu-icon"></div><?php _e('sortByHand');?> <span class="ytt-sort-direction">&nbsp;</span></li> <li class="ytt-need-list sort-item" id="sortByDateCreated"><div class="menu-icon"></div><?php _e('sortByDateCreated');?> <span class="ytt-sort-direction">&nbsp;</span></li> <li class="ytt-need-list sort-item" id="sortByPrio"><div class="menu-icon"></div><?php _e('sortByPriority');?> <span class="ytt-sort-direction">&nbsp;</span></li> <li class="ytt-need-list sort-item" id="sortByDueDate"><div class="menu-icon"></div><?php _e('sortByDueDate');?> <span class="ytt-sort-direction">&nbsp;</span></li> <li class="ytt-need-list sort-item" id="sortByDateModified"><div class="menu-icon"></div><?php _e('sortByDateModified');?> <span class="ytt-sort-direction">&nbsp;</span></li> <li class="ytt-menu-delimiter"></li> <li class="ytt-need-list" id="btnShowCompleted"><div class="menu-icon"></div><?php _e('list_showcompleted');?></li> </ul> </div> <div id="listexportmenucontainer" class="ytt-menu-container" style="display:none"> <ul> <li class="ytt-need-list ytt-need-real-list" id="btnExportCSV"><?php _e('list_export_csv');?></li> <li class="ytt-need-list ytt-need-real-list" id="btnExportICAL"><?php _e('list_export_ical');?></li> </ul> </div> <div id="taskcontextcontainer" class="ytt-menu-container" style="display:none"> <ul> <li id="cmenu_edit"><b><?php _e('action_edit');?></b></li> <li id="cmenu_note"><?php _e('action_note');?></li> <li id="cmenu_prio" class="ytt-menu-indicator" submenu="cmenupriocontainer"><div class="submenu-icon"></div><?php _e('action_priority');?></li> <li id="cmenu_move" class="ytt-menu-indicator" submenu="cmenulistscontainer"><div class="submenu-icon"></div><?php _e('action_move');?></li> <li id="cmenu_delete"><?php _e('action_delete');?></li> </ul> </div> <div id="cmenupriocontainer" class="ytt-menu-container" style="display:none"> <ul> <li id="cmenu_prio:2"><div class="menu-icon"></div>+2</li> <li id="cmenu_prio:1"><div class="menu-icon"></div>+1</li> <li id="cmenu_prio:0"><div class="menu-icon"></div>&plusmn;0</li> <li id="cmenu_prio:-1"><div class="menu-icon"></div>&minus;1</li> </ul> </div> <div id="cmenulistscontainer" class="ytt-menu-container" style="display:none"> <ul> </ul> </div> <div id="slmenucontainer" class="ytt-menu-container" style="display:none"> <ul> <li id="slmenu_list:-1" class="list-id--1 ytt-need-list" <?php if(is_readonly()) echo 'style="display:none"' ?><div class="menu-icon"></div><a href="#alltasks"><?php _e('alltasks'); ?></a></li> <li class="ytt-menu-delimiter slmenu-lists-begin ytt-need-list" <?php if(is_readonly()) echo 'style="display:none"' ?></li> </ul> </div> <div id="createuser" style="display:none" class="ytt-menu-container"> <form method="post" action="" name="createuserForm"> <label for="um_username"><?php _e('um_username');?></label> <input type="text" name="um_username" id="um_username" value="" /> <label for="um_email"><?php _e('um_email');?></label> <input type="text" name="um_email" id="um_email" value="" /> <label for="um_password"><?php _e('um_password');?></label> <input type="password" name="um_password" id="um_password" value="" /> <label for="um_role"><?php _e('um_role');?></label> <select name="um_role" id="um_role"> <option value="1"><?php _e('um_rolename_1')?></option> <option value="2"><?php _e('um_rolename_2')?></option> <option value="3"><?php _e('um_rolename_3')?></option> </select> <input type="hidden" value="" id="um_userid" name="um_userid" /> <input type="button" id="createuserSubmit" value="<?php _e('save')?>" /> </form> </div> <div id="page_ajax" style="display:none"></div> </div> <div id="space"></div> </div> <div id="ytt-menu-modal" class="ytt-menu-modal"></div> <div id="footer"><div id="footer_content">Powered by <strong><a href="http://www.yourtinytodo.net/">yourTinyTodo</a></strong> <?=YTT_VERSION?> </div></div> </div> </body> </html> <!-- r387 -->
based on 9Wbhk

Here you find the average performance (time & memory) of each version. A greyed out version indicates it didn't complete successfully (based on exit-code).
Note: hhvm uses a JIT which only kicks in after a few runs. Since we run scripts only once, hhvm always runs slower.

VersionSystem time (s)User time (s)Memory (MiB)
7.2.00.0060.00619.34
7.1.100.0030.00917.95
7.1.70.0000.01417.10
7.1.60.0110.01119.17
7.1.50.0060.00916.89
7.1.00.0070.07322.48
7.0.200.0040.01116.76
7.0.100.0070.04020.11
7.0.90.0070.03720.30
7.0.80.0030.03720.09
7.0.70.0130.04020.19
7.0.60.0000.03720.22
7.0.50.0030.04020.50
7.0.40.0100.04320.18
7.0.30.0030.04320.00
7.0.20.0130.04020.05
7.0.10.0030.04020.09
7.0.00.0170.03020.11
5.6.280.0000.05720.99
5.6.250.0070.03720.66
5.6.240.0030.03320.68
5.6.230.0000.03720.78
5.6.220.0070.05320.74
5.6.210.0000.03720.66
5.6.200.0030.04320.98
5.6.190.0200.03021.14
5.6.180.0000.03721.20
5.6.170.0030.03721.27
5.6.160.0070.03321.18
5.6.150.0030.03721.13
5.6.140.0030.03721.05
5.6.130.0130.02721.10
5.6.120.0030.03721.14
5.6.110.0030.04321.12
5.6.100.0070.08021.15
5.6.90.0030.03721.18
5.6.80.0030.03720.60
5.6.70.0100.03320.40
5.6.60.0030.05020.46
5.6.50.0130.08020.58
5.6.40.0070.06320.58
5.6.30.0000.04020.53
5.6.20.0070.04020.38
5.6.10.0070.03720.47
5.6.00.0070.10020.46
5.5.380.0000.03720.64
5.5.370.0000.03720.51
5.5.360.0000.03720.41
5.5.350.0030.05020.50
5.5.340.0030.03320.96
5.5.330.0030.03321.01
5.5.320.0030.04320.86
5.5.310.0000.04021.00
5.5.300.0000.03720.93
5.5.290.0100.03020.99
5.5.280.0130.03320.74
5.5.270.0030.04321.01
5.5.260.0070.03720.91
5.5.250.0030.04020.78
5.5.240.0100.07720.34
5.5.230.0070.04020.12
5.5.220.0070.06720.35
5.5.210.0100.08020.39
5.5.200.0070.06720.33
5.5.190.0000.04320.25
5.5.180.0000.07720.18
5.5.160.0100.06320.33
5.5.150.0100.05720.23
5.5.140.0100.08020.34
5.5.130.0100.04020.31
5.5.120.0030.04020.08
5.5.110.0030.05720.29
5.5.100.0130.06320.08
5.5.90.0070.06320.16
5.5.80.0100.07320.17
5.5.70.0100.04320.16
5.5.60.0070.07320.13
5.5.50.0070.08320.05
5.5.40.0070.07720.18
5.5.30.0030.07320.11
5.5.20.0100.03320.16
5.5.10.0030.04320.11
5.5.00.0030.07720.20
5.4.450.0030.03319.48
5.4.440.0030.03319.42
5.4.430.0000.04319.46
5.4.420.0070.05019.50
5.4.410.0070.05319.13
5.4.400.0000.08319.18
5.4.390.0030.05019.06
5.4.380.0030.03719.06
5.4.370.0070.07319.14
5.4.360.0000.08318.82
5.4.350.0070.04319.03
5.4.340.0030.05719.09
5.4.320.0100.04018.85
5.4.310.0070.03718.93
5.4.300.0070.07719.12
5.4.290.0070.06719.16
5.4.280.0070.05318.97
5.4.270.0170.06718.97
5.4.260.0000.04018.91
5.4.250.0100.04719.05
5.4.240.0100.03319.05
5.4.230.0130.06719.07
5.4.220.0130.07318.81
5.4.210.0100.03719.07
5.4.200.0100.05018.92
5.4.190.0100.05719.06
5.4.180.0070.07319.07
5.4.170.0130.04019.16
5.4.160.0000.06319.10
5.4.150.0100.08019.05
5.4.140.0030.03716.36
5.4.130.0070.06716.34
5.4.120.0030.07316.34
5.4.110.0030.06016.29
5.4.100.0030.06316.38
5.4.90.0030.03716.32
5.4.80.0070.08716.37
5.4.70.0070.07016.49
5.4.60.0100.05316.48
5.4.50.0000.06016.25
5.4.40.0100.06316.24
5.4.30.0030.04716.24
5.4.20.0030.07016.27
5.4.10.0170.05716.24
5.4.00.0070.05015.84