null i nullable w PHP

W PHP, null jest specjalnym typem, który może być przypisany do każdej zmiennej i oznacza, że zmienna nie ma żadnej wartości. Jest to przydatne w wielu scenariuszach, na przykład gdy chcemy wskazać, że zmienna jeszcze nie została zainicjowana lub gdy chcemy świadomie “usunąć” jej zawartość.

Z kolei koncepcja nullable dotyczy typów, które mogą przyjąć wartość null oprócz swoich standardowych wartości. W PHP 7.1 i nowszych wersjach można jawnie oznaczyć typy argumentów funkcji, typy zwracane przez funkcje oraz typy właściwości klas jako nullable, używając znaku zapytania przed typem.

Przykład kodu PHP z HTML

Poniżej znajduje się przykład prostego skryptu PHP, który demonstruje użycie null i typów nullable. Skrypt ten będzie również zawierał prosty formularz HTML, który umożliwi przesyłanie danych do skryptu PHP.

<?php
// Funkcja przyjmująca nullable typ integer i zwracająca string
function describeAge(?int $age): string {
    if (is_null($age)) {
        return "Wiek nie został podany.";
    } else {
        return "Wiek to: $age lat.";
    }
}

// Przetwarzanie danych z formularza
$submittedAge = null;
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["age"])) {
    $submittedAge = $_POST["age"] !== "" ? (int)$_POST["age"] : null;
}

?>

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Null i Nullable w PHP</title>
</head>
<body>

<h1>Formularz wieku</h1>

<!-- Formularz HTML dla danych wejściowych -->
<form method="post" action="">
    <label for="age">Wpisz swój wiek: </label>
    <input type="number" id="age" name="age" value="">
    <input type="submit" value="Wyślij">
</form>

<?php
// Wyświetlanie wyników
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    echo "<p>" . describeAge($submittedAge) . "</p>";
}
?>

</body>
</html>

Opis działania

  1. Funkcja describeAge: Ta funkcja przyjmuje argument typu int, który może być również null (dzięki zastosowaniu ?int). Funkcja sprawdza, czy przekazany argument jest null za pomocą funkcji is_null(). Jeśli tak, zwraca informację, że wiek nie został podany. W przeciwnym przypadku zwraca wiek użytkownika.
  2. Przetwarzanie danych z formularza: Skrypt sprawdza, czy formularz został przesłany metodą POST i czy wartość age została ustawiona. Jeśli pole age zostało wypełnione, wartość jest konwertowana na typ int i przypisywana do zmiennej $submittedAge. Jeśli pole jest puste, zmiennej $submittedAge przypisywana jest wartość null.
  3. Formularz HTML: Prosty formularz z jednym polem numerycznym umożliwia użytkownikowi wpisanie swojego wieku i przesłanie go do skryptu.
  4. Wyświetlanie wyników: Po przesłaniu formularza wywoływana jest funkcja describeAge z przesłaną wartością wieku jako argumentem, a wynik jest wyświetlany użytkownikowi.

Ta lekcja przedstawia podstawowe użycie null i nullable w PHP, pokazując, jak można łatwo manipulować i sprawdzać wartości null w kontekście danych wejściowych formularza.

 

Scroll to Top