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
- Funkcja
describeAge
: Ta funkcja przyjmuje argument typuint
, który może być równieżnull
(dzięki zastosowaniu?int
). Funkcja sprawdza, czy przekazany argument jestnull
za pomocą funkcjiis_null()
. Jeśli tak, zwraca informację, że wiek nie został podany. W przeciwnym przypadku zwraca wiek użytkownika. - Przetwarzanie danych z formularza: Skrypt sprawdza, czy formularz został przesłany metodą
POST
i czy wartośćage
została ustawiona. Jeśli poleage
zostało wypełnione, wartość jest konwertowana na typint
i przypisywana do zmiennej$submittedAge
. Jeśli pole jest puste, zmiennej$submittedAge
przypisywana jest wartośćnull
. - Formularz HTML: Prosty formularz z jednym polem numerycznym umożliwia użytkownikowi wpisanie swojego wieku i przesłanie go do skryptu.
- 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.