PHP documentation说明了unset()
语言构造的以下内容:
销毁指定的变量。
取消设定给定的变量
这究竟意味着什么?只是销毁变量内容;清空一个变量并给它赋值null
?或者它是否意味着,消除变量不仅仅是内容而是一切?
我写了以下内容:
$a = "tom";
unset($a);
var_dump($a);
得到了这个:
Notice: Undefined variable: a in...
答案 0 :(得分:-1)
它会破坏内容,并使变量处于未定义状态。
如果您在取消设置后尝试再次访问该变量,并且您已禁用警告,则可能会检索该值,但绝对无法保证。
答案 1 :(得分:-4)
还有一个例子:
如何从来自mysql请求的数组结果中取消设置数组元素的示例。在此示例中,它检查文件是否存在,如果不存在则从数组中删除该行。
<?php
$db->set_query("select * from documents where document_in_user = 0"); //1
$documents = $db->result_to_array($db->get_result()); //1
foreach ($documents as $key => $row) { //2
$file = "uploads/".rawurldecode($row['document_name']);
if ( file_exists ( $file ) == FALSE ) {
unset($documents[$key]); //3
}
}
$documents = array_values($documents); // reindex the array (4)
?>
<强>变量:强>
mysql table = documents,
array = $documents
array key (index) = $key
array row (record sort of speak) = $row
<强>解释强>
1。它从表中获取数组(mysql)
2。 foreach遍历数组$ documents
3. 如果记录不存在则取消设置
4。 array_values($documents)
重新编号$documents array
,否则当您的流程开始期待以键开头的数组时,您可能会遇到麻烦($ key) * 0(零) *。