下面的php代码有什么特殊情况吗?
原始代码:下面的php代码有什么特殊情况吗?,php,Php,原始代码: if (isset($_REQUEST['data'])) { $data = $_REQUEST['data']; $data = json_decode($data); if ($data->mail == '(null)') { $data->mail = ''; } if ($data->identity == '(null)') {
if (isset($_REQUEST['data'])) {
$data = $_REQUEST['data'];
$data = json_decode($data);
if ($data->mail == '(null)') {
$data->mail = '';
}
if ($data->identity == '(null)') {
$data->identity = '';
}
}
我理解上面的代码如下
if (isset($_REQUEST['data'])) {
$data = $_REQUEST['data'];
$data = json_decode($data);
if ($data->mail == '') {
$data->mail = '';
}
if ($data->identity == '') {
$data->identity = '';
}
}
为什么他用“null”代替邮件中的身份变量检查?这是我现有的代码。我认为“null”是一个字符串。他为什么要将此与“null”字符串进行比较。是为了避免使用“null”名称吗?这将检查值是否等于字符串null
这将检查该值是否为空
$data->mail == ''
它们不是等价的。可能是null属性的值必须作为字符串“null”在$\u请求['data']中发送,因此原始代码必须这样编写。如果您能够将null值设置为空字符串或null,那么下面的代码可能工作得很好
if (isset($_REQUEST['data'])) {
$data = $_REQUEST['data'];
$data = json_decode($data);
if($data){ // Error handling if json_decode gives null for invalid json encoded string
if (!$data->mail) {
$data->mail = '';
}
if (!$data->identity) {
$data->identity = '';
}
}
}
在第一个比较代码中,$data->mail正好是null字符串。它与null无关,因为这是一个字符串。另外,后面的示例没有意义,检查它是否为空,然后将其设置为空,这没有任何作用。这是多余的。
if (isset($_REQUEST['data'])) {
$data = $_REQUEST['data'];
$data = json_decode($data);
if($data){ // Error handling if json_decode gives null for invalid json encoded string
if (!$data->mail) {
$data->mail = '';
}
if (!$data->identity) {
$data->identity = '';
}
}
}