3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php<!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" xml:lang="en" lang="en">      <head>        <title>Form Example</title>        <meta http-equiv="content-type"            content="text/html; charset=utf-8"/>      </head>      <body>        <form action="" method="post">          <div><label for="firstname">First name:            <input type="text" name="firstname" id="firstname"/></label>          </div>          <div><label for="lastname">Last name:            <input type="text" name="lastname" id="lastname"/></label>          </div>          <div><input type="submit" value="GO"/></div>        </form>      </body>     </html> As you can see, we’re leaving the action attribute blank. This tells the browser to submit the form back to the same URL from which it received the form – in this case, the URL of the controller that included this template file. Let’s take a look at the controller for this example. Create an index.php script in the welcome directory alongside your form template. Type the following code into this file: <?php     if (!isset($_REQUEST['firstname']))     {      include 'form.html.php';     }     else3     {      $firstname = $_REQUEST['firstname'];      $lastname = $_REQUEST['lastname'];      if ($firstname == 'Kevin' and $lastname == 'Yank')      {        $output = 'Welcome, oh glorious leader!';      }      else      {        $output = 'Welcome to our web site, ' .            htmlspecialchars($firstname, ENT_QUOTES, 'UTF-8') . ' ' .            htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') . '!';      }          include 'welcome.html.php';5     }     ?> This code should look fairly familiar at first glance; it’s a lot like the welcome8.php script we wrote earlier. Let me explain the differences: if (!isset($_REQUEST['firstname']))     { The first thing the controller needs to do is decide whether the current request is a submission of the form in form.html.php or not. You can do this by checking if the request contains a firstname variable. If it does, PHP will have stored the value in $_REQUEST['firstname']. isset is a built-in PHP function that will tell you if a particular variable (or array element) has been assigned a value or not. If $_REQUEST['firstname'] has a value, isset($_REQUEST['firstname']) will be true. If $_REQUEST['firstname'] lacks a value, isset($_REQUEST['firstname']) will be false. For the sake of readability, I like to put the code that sends the form first in my controller. What we need this if statement to check, therefore, is if $_REQUEST['firstname'] is not set. To do this, we use the not operator (!). By putting this operator before the name of a function, you reverse the value that function returns from true to false, or from false to true. Thus, if the request does not contain a firstname variable, then !isset($_REQUEST['firstname']) will return true, and the body of the if statement will be executed. include 'form.html.php'; If the request is not a form submission, the controller includes the form.html.php file to display the form. }     else     { If the request is a form submission, the body of the else statement is executed instead. This code pulls the firstname and lastname variables out of the $_REQUEST array, and then generates the appropriate welcome message for the name submitted: $firstname = $_REQUEST['firstname'];     $lastname = $_REQUEST['lastname'];     if ($firstname == 'Kevin' and $lastname == 'Yank')     {      $output = 'Welcome, oh glorious leader!';     }     else     {      $output = 'Welcome to our web site, ' .          htmlspecialchars($firstname, ENT_QUOTES, 'UTF-8') . ' ' .          htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') . '!';     } Instead of echoing the welcome message, the controller stores the welcome message in a variable named $output.  include 'welcome.html.php';     } After generating the appropriate welcome message, the controller includes the welcome.html.php template, which will display that welcome message. All that's left is to write the welcome.html.php template. Here it is: <!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" xml:lang="en" lang="en">      <head>        <title>Form Example</title>        <meta http-equiv="content-type"            content="text/html; charset=utf-8"/>      </head>      <body>        <p>          <?php echo $output; ?>        </p>      </body>     </html>
based on kuLmD
Output for hhvm-3.10.0

Process exited with code 153.
Output for 5.4.0 - 5.4.32
Parse error: syntax error, unexpected ' ' (T_STRING) in /in/h4Joi on line 26
Process exited with code 255.
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.3.29
Parse error: syntax error, unexpected T_STRING in /in/h4Joi on line 26
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STRING in /in/h4Joi on line 26
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/h4Joi on line 26
Process exited with code 255.