【发布时间】:2012-11-07 20:06:37
【问题描述】:
罗宾尼克松书中的代码:
<?php
if (isset($_POST['name'])) $name = $_POST['name'];
else $name = '(enter your name)';
echo <<<_END
<html>
<head>
<title>Test</title>
</head>
<body>
Your name is $name<br />
<form method = 'post' action = 'count.php'>
What's your name?
<input type='text' name='name' />
<input type='submit' />
</form>
</body>
</html>
_END
?>
在第二行中,我们使用isset() 检查是否设置了变量。在第三行中,我们有一个条件:如果没有设置,脚本会打印“输入您的姓名”。这就是我不明白的:我打开这个页面 - 它打印:
你的名字(输入你的名字) 你叫什么名字? (和提交表格)
根本没有输入任何内容,然后点击“发送” - 它会打印:
你的名字是(并且不打印“输入你的名字”)你叫什么名字? (和提交表格)
我没有输入任何内容,但函数说变量设置为NULL 以外的值。为什么?如果它传递一个空值,那么为什么要使用它?为什么不使用empty?但是在所有程序中,我都看到了这样的解决方案。为什么我们必须在那里使用isset() 函数?我不明白什么?
【问题讨论】:
-
var_dump($_POST['name'])会告诉你这是一个string(0)(空/零长度字符串)。来自 _GET/_POST 的所有值都是字符串,无论其实际内容如何。
标签: php