3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('ROWS_PER_PAGE', 10); function display_table($fields, $data, $rows, $page){ if(isset($_GET['page'])){ $page = $_GET['page']; } else { $page = 1; } $firstRecord = ($page - 1) * ROWS_PER_PAGE; $pageNumbers = ceil($rows / ROWS_PER_PAGE); echo '<div class="table-responsive w-75 mx-auto py-3"> <table class="table table-dark table-bordered table-sm"> <thead> <tr>'; foreach($fields as $key){ echo '<th class="py-2">' . $key . '</th>'; } echo '</tr> </thead> </tbody>'; $keys = array_keys($fields); $lastRecord = min($firstRecord + ROWS_PER_PAGE, $rows); for($record = $firstRecord; $record < $lastRecord; $record++){ $row = $data[$record]; echo '<tr>'; for($recordCount = 0; $recordCount < count($keys); $recordCount++){ $column = $keys[$recordCount]; echo '<td class="py-2">' . $row[$column] . '</td>'; } echo '</tr>'; } echo '</tbody> </table'; for($pages = 1; $pages <= $pageNumbers; $pages++){ echo '<a class="btn btn-dark mx-1" href=?page=' . $pages . '</a>'; } } $fields = array( "id" => "Id", "emailaddress" => "Email", "firstname" => "First Name", "lastname" => "Last Name", "salesperson" => "Salesperson", "phonenumber" => "Phone Number", "extension" => "Extension", "type" => "Type" ); $data = array( array('id' => 1, 'emailaddress' => 'user1@example.com', 'firstname' => 'User', 'lastname' => 'One', 'salesperson' => 'y', 'phonenumber' => '1235556789', 'extension' => '1', 'type' => 'a') , array('id' => 2, 'emailaddress' => 'user2@example.com', 'firstname' => 'User', 'lastname' => 'Two', 'salesperson' => 'y', 'phonenumber' => '1235556789', 'extension' => '2', 'type' => 'a') ); display_table($fields, $data, 2, 1);
Output for 7.1.2, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
<div class="table-responsive w-75 mx-auto py-3"> <table class="table table-dark table-bordered table-sm"> <thead> <tr><th class="py-2">Id</th><th class="py-2">Email</th><th class="py-2">First Name</th><th class="py-2">Last Name</th><th class="py-2">Salesperson</th><th class="py-2">Phone Number</th><th class="py-2">Extension</th><th class="py-2">Type</th></tr> </thead> </tbody><tr><td class="py-2">1</td><td class="py-2">user1@example.com</td><td class="py-2">User</td><td class="py-2">One</td><td class="py-2">y</td><td class="py-2">1235556789</td><td class="py-2">1</td><td class="py-2">a</td></tr><tr><td class="py-2">2</td><td class="py-2">user2@example.com</td><td class="py-2">User</td><td class="py-2">Two</td><td class="py-2">y</td><td class="py-2">1235556789</td><td class="py-2">2</td><td class="py-2">a</td></tr></tbody> </table<a class="btn btn-dark mx-1" href=?page=1</a>
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 <div class="table-responsive w-75 mx-auto py-3"> <table class="table table-dark table-bordered table-sm"> <thead> <tr><th class="py-2">Id</th><th class="py-2">Email</th><th class="py-2">First Name</th><th class="py-2">Last Name</th><th class="py-2">Salesperson</th><th class="py-2">Phone Number</th><th class="py-2">Extension</th><th class="py-2">Type</th></tr> </thead> </tbody><tr><td class="py-2">1</td><td class="py-2">user1@example.com</td><td class="py-2">User</td><td class="py-2">One</td><td class="py-2">y</td><td class="py-2">1235556789</td><td class="py-2">1</td><td class="py-2">a</td></tr><tr><td class="py-2">2</td><td class="py-2">user2@example.com</td><td class="py-2">User</td><td class="py-2">Two</td><td class="py-2">y</td><td class="py-2">1235556789</td><td class="py-2">2</td><td class="py-2">a</td></tr></tbody> </table<a class="btn btn-dark mx-1" href=?page=1</a>

preferences:
168.15 ms | 403 KiB | 184 Q