Мне трудно понять PHP-код ниже.
Первая строка кода представляет собой супергрупповую переменную с элементом запроса в ней:
Я предполагаю, что эта строка просто указывает, какой метод использовался для отправки данных на сервер, в этом случае использовался POST.
Но то, что я немного расплывчато, - вторая строка.
Правильно ли я понимаю, что эта строка означает "если не указано имя, то что-то происходит"?
Это что-то вроде третьей линии, или же четвертая строка активирована.
Здесь я теряюсь.
Третья строка присваивает оператор переменной $error
, а четвертая строка присваивает другой оператор переменной $name
.
Но $error
кажется, имеет два разных оператора, к которым он прикреплен, и я не понимаю, что $name = test_input($_POST["name"])
.
Другими словами, только строка номер один мне понятна, и строка, содержащая "if NOT preg match", потому что я знаком с предварительным соответствием.
НО, о чем я также не совсем понимаю, это строка, которая появляется после "if NOT preg match".
Имеет ли значение $name = ""
что если вы вводите что-либо, кроме букв или пробелов, то то, что вы только что набрали, будет удалено?
И (опять же) я смущен тем, что $error
имеет два значения, связанные с ним.
Может кто-нибудь, пожалуйста, просветит меня?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$error = "Name is required";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name = "";
$error = "Anything that is not letters or whitespace are not allowed";
}
}
}
Я отредактировал ваш код (только отступы), чтобы вам было легче читать. Начните вставлять свой код таким образом, и вы не будете так же путаны:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{
$error = "Name is required";
}
else
{
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$name = "";
$error = "Anything that is not letters or whitespace are not allowed";
}
}
...
}
{
открывает блок }
закрывает его. Если вы знаете, что, if
и else
значит, это должно быть очевидно сейчас. Если нет, перейдите к руководству PHP по Control Structures.
Но это должно быть очевидно, код внутри блока if
выполняется только тогда, когда условие истинно. Код в блоке else
выполняется, если условие предыдущего if
не было истинным. Таким образом, $error
не имеет двух значений. Его значение зависит от значений проверок в операторах if.
Этот код исходит из статей W3Schools. Я рекомендую вам прочитать их все. Они очень детализированы.
Прочтите эти статьи, они имеют довольно хорошие объяснения.
$error
присваивается только один раз, так как один находится на if
а другой - на else
. Это также может помочь вам.