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 jestnullza 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ą
POSTi czy wartośćagezostała ustawiona. Jeśli poleagezostało wypełnione, wartość jest konwertowana na typinti przypisywana do zmiennej$submittedAge. Jeśli pole jest puste, zmiennej$submittedAgeprzypisywana 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
describeAgez 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.