簡體   English   中英

在定義變量后將變量設置為空(“”)的目的是什么?

[英]what is the purpose of setting variables to empty (“ ”) after defining them?

我正在學習驗證表單輸入數據,w3schools上有一些我不理解的代碼。 見下文:

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

//bla bla bla

我不明白“ //定義變量並設置為空值”的意思。

不要使用本教程。 我正在看這個test_input()函數, test_input()不敢相信有人會發布以下代碼:

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

在這里查看我的答案以獲取更多關於為什么這是一個壞主意以及如何做的更多信息: https : //stackoverflow.com/a/7810880/362536

現在,討論您的實際問題。 在許多語言中,要求您在使用變量之前先聲明要使用的變量。 PHP不是這些語言之一。 某些人認為,如果您知道所有變量都在前面,那么您的代碼將更易於閱讀,並將這些變量定義為代碼樣式。 也就是說,它們將列出變量並將其設置為某個值。 您擁有的代碼:

$nameErr = $emailErr = $genderErr = $websiteErr = "";

...在功能上等同於:

$nameErr = '';
$emailErr = '';
$genderErr = '';
$websiteErr = '';

在PHP中,您可以鏈接變量分配,這就是為什么這兩個等效的原因。

如果選擇聲明變量是出於樣式問題,則不應為它們分配空字符串。 您應該改用null 假設我有一個變量,該變量是有條件地從用戶輸入字段分配的數據。 如果我使用空字符串''初始化變量,則無法知道表單字段是否存在以及是否已提交。 如果使用null ,則可以使用isset()確定該變量是否具有一個空的表單字段(空字符串'' )或null作為其值。

您可以很好地確定空字符串初始化適合您的應用程序。 就像約翰·康德在上面的評論中說的那樣,許多人都在使用它,因此他們可以自由地連接變量而不必擔心變量中的內容,即使沒有分配顯式值,您也已經分配了一個空字符串。 我會爭辯說,很少有時間使用在整個生命周期中始終保持單一目的的數據,並且最好以最清晰的表示形式存儲數據。 如果變量旨在為null ,則其值的確應該為null而不是空字符串。 您的選擇取決於您和您的具體情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM