Letzte Änderung: 17. Dezember 2022

PHP Tipps


require, require_once, include, include_once


include
Beispielsweise bei einem AdServer hilfreich. Wenn die Datei nicht gefunden wird, kann die Website trotzdem angezeigt werden. Außerdem können auch mehrmals neue Werbemittel angezeigt werden.

include_once
Hilfreich, bei Dateien, die nicht unbedingt benötigt werden, aber nur einmal eingebunden werden. Dies kann zum Beispiel bei einer Header / Footer Datei der Fall sein.

require & require_once
Für ein require (ohne _once) fällt mir derzeit einfach kein gutes Beispiel ein. 

Wenn eine Datei beispielsweise die Datenbankverbindung herstellt oder prüft ob der Nutzer eingeloggt ist, dann sind diese Dateien unbedingt notwendig und sollten (da sie nur einmal benötigt werden) mit require_once eingebunden werden. Wird die Datei nicht gefunden stoppt das Script mit einem Error.

htmlentities vs htmlspecialchars


I prefer to use htmlspecialchars whenever possible.

For example:

echo htmlentities('<Il était une fois un être>.');
// Output: &lt;Il &eacute;tait une fois un &ecirc;tre&gt;.
// ^^^^^^^^ ^^^^^^^

echo htmlspecialchars('<Il était une fois un être>.');
// Output: &lt;Il était une fois un être&gt;.
// ^ ^

mysqli_real_escape_string


mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "'s-Hertogenbosch";

// Object-oriented style
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
    $mysqli->real_escape_string($city));
$result = $mysqli->query($query);

// Procedural style
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
    mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);

Deal with $_POST


if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    $name = $_POST['name'];
    $age = $_POST['age'];
  
    if (empty($name)) 
        echo "Please enter name";
    elseif(empty($age))
        echo "Please enter age";
    else
        echo "$name is $age years old.";
}

isset vs empty vs is_null


The isset() function checks if a variable is set, while the empty() function checks if a variable is set and not empty.
The isset() function considers 0 as a variable, while the empty() function considers 0 as empty.

if(isset($_POST[myField]) && $_POST[myField] != "") 
{
  //Do my PHP code
}

A more efficient way of doing this is obviously to use:
if(!empty($_POST[myField])) 
{
  //Do my PHP code
}

ISSET:
isset(""): 1
isset('apple'): 1
isset(null):
isset(FALSE): 1
isset(0): 1
isset(undefined):
isset(TRUE): 1
isset(array()): 1
isset(123): 1

EMPTY:
empty(""): 1
empty('apple'):
empty(null): 1
empty(FALSE): 1
empty(0): 1
empty(undefined): 1
empty(TRUE):
empty(array()): 1
empty(123):

IS_NULL:
is_null(""):
is_null('apple'):
is_null(null): 1
is_null(FALSE):
is_null('0'):
is_null(undefined):1, Notice: Undefined variable
is_null(TRUE):
is_null(array()):
is_null(123):