3

让我们假设我们向 PHP 文件发送一个 post 查询,这个查询我们有 ...&title=title 其中 title 是例如 title=$(#title).val();(假设我们包括 Jquery)在 PHP 中我们有$title=$_POST['title']; 让我们假设 title 是 null , PHP会将null视为字符串吗?还是空的?

4

4 回答 4

4

来自PHP 手册

特殊NULL值表示没有值的变量。NULL是 type 唯一可能的值NULL

一个变量被认为是NULL如果:

  • 它已被分配常量NULL
  • 它尚未设置为任何值。
  • 它已被unset()

"NULL"不一样NULL

var_dump("null" == NULL);

输出:

bool(false)
于 2013-09-29T15:58:01.140 回答
2

标题在发送到服务器之前被转换为字符串。

将 JS 值转换null为字符串会产生一个字符串"null"。因此,PHP 只会将变量解释为字符串。

但是,我怀疑您是否会从空输入框中收到空值。您将得到一个空字符串。

于 2013-09-29T16:00:20.040 回答
1

在您的情况下,如果您将$(#title).val();ajax 请求中的 as 数据发送到 php 脚本,并且输入为空,则它只是一个空字符串。

于 2013-09-29T16:00:36.850 回答
0

php 将 js null 拦截为“null”-> 字符串,因此为了处理表单请求,我在 php 代码中进行了一些小工作,如下所示

function checknull($arg){
    if($arg == "null"){
      return;
    }else{
        return $arg;
    }
}
$a=array();
$b = "null";
$a['hi'] = checknull($b);
var_dump($a);

这将输出为

array(1) { ["hi"]=> NULL }

//同样,你可以为 $_REQUEST 测试它

$var1 = checknull($_POST['title']);
var_dump($var1);

或者你可以使用

$var1 = $_POST['title'] === 'null'? NULL : $_POST['title'];
var_dump($var1);
于 2016-06-02T17:32:24.293 回答