Die richtige Methode zum Überprüfen, ob ein Array-Schlüssel vorhanden ist, ist die Funktion array_key_exists()
Der Unterschied ist, wenn Sie haben $_POST['variable'] = null darin, dass der Schlüssel vorhanden ist und gesendet wurde, der Wert jedoch null war
Die andere Option ist isset() prüft, ob ein Array-Schlüssel vorhanden ist und ob er festgelegt wurde
Die letzte Option ist zu verwenden empty() der überprüft wird, ob der Array-Schlüssel vorhanden ist, wenn er festgelegt ist und der Wert nicht als leer betrachtet wird.
Beispiele:
$arr = [
'a' => null,
'b' => '',
'c' => 1
];
array_key_exists('a', $arr); // true
isset($arr['a']); // false
empty($arr['a']); // true
array_key_exists('b', $arr); // true
isset($arr['b']); // true
empty($arr['b']); // true
array_key_exists('c', $arr); // true
isset($arr['c']); // true
empty($arr['c']); // false
Was Ihre Frage betrifft
Der richtige Weg, um zu überprüfen, ob ein Wert gesendet wurde, besteht darin, array_key_exists () mit der Methode zur Überprüfung der Anforderung zu verwenden
if ($_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('fromPerson', $_POST)
{
// logic
}
Aber es gibt einige Fälle, die von Ihrer Logik abhängen, wo isset() undempty() auch gut sein können.
empty()ist nicht richtig für Wahl # 1, weil in PHP, die Zeichenfolge'0'entsprichtfalse- undempty()kehrttruefür alle Werte gleich falsch .emptyWenn Sie also den Code verwenden , wird das Drucken übersprungen, wenn der Wert lautet'0'. Wenn Sie die leere Zeichenfolge ausschließen möchten, lesen Sie die Antwort von Augustus.