【问题标题】:What is the PHP syntax to check "is not null" or an empty string? [duplicate]检查“不为空”或空字符串的 PHP 语法是什么? [复制]
【发布时间】:2012-06-28 02:42:25
【问题描述】:

可能重复:
Check if a variable is empty

简单的 PHP 问题:

我有这个词根:

if (isset($_POST["password"]) && ($_POST["password"]=="$password")) {
...//IF PASSWORD IS CORRECT STUFF WILL HAPPEN HERE
}

在此语句上方的某处,我在我的 JavaScript 中使用以下行将用户名设置为我的 JavaScript 和 PHP 中的变量:

uservariable = <?php $user = $_POST['user']; print ("\"" . $user . "\"")?>;

我想要做的是添加一个条件以确保 $user 不是 null 或空字符串(它不必是任何特定值,我只是不希望它为空。什么是这样做的正确方法?

我知道这是一个愚蠢的问题,但我没有使用 PHP 的经验。请指教,谢谢!

【问题讨论】:

标签: php variables null conditional-statements


【解决方案1】:

Null 或空字符串?

if (!empty($user)) {}

使用 empty()。


在意识到 $user ~= $_POST['user'] 之后(感谢 matt):

var uservariable='<?php 
    echo ((array_key_exists('user',$_POST)) || (!empty($_POST['user']))) ? $_POST['user'] : 'Empty Username Input';
?>';

【讨论】:

  • 看起来我对这个问题的理解与其他人不同……我们说的是 $user,而不是 $_POST['user'],对吧?
  • $user 在他的代码中被分配给$_POST['user']。还不如在分配前验证,但这真的没关系
  • 嗯,到底有什么区别?如果我做错了什么,请告诉我!
  • @mattedgod - 好点。我错过了。
  • 我喜欢这种方式。我希望这是正确的。但我仍然遇到错误。意外的“;” ...我不明白这部分:'空用户名输入'
【解决方案2】:

使用empty()。它会检查空字符串和 null。

if (!empty($_POST['user'])) {
  // do stuff
}

来自手册:

以下的东西被认为是空的:

"" (an empty string)  
0 (0 as an integer)  
0.0 (0 as a float)  
"0" (0 as a string)    
NULL  
FALSE  
array() (an empty array)  
var $var; (a variable declared, but without a value in a class)  

【讨论】:

  • 请注意,如果 $_POST 上未设置“用户”,您将收到警告。它仍然可以工作,但它会很快填满您的日志。我通常通过以下方式缓解这种情况:if ((array_key_exists('user',$_POST)) || (!empty($_POST['user']))
  • 这三个都给我错误信息:
  • if (isset($_POST["password"]) && ($_POST["password"]=="$password") && (array_key_exists('user',$_POST)) 并且如果(isset($_POST["password"]) && ($_POST["password"]=="$password") && (!empty($_POST['user'])) 和 (isset($_POST["password "]) && ($_POST["password"]=="$password") && (!empty('$user'))
  • 我没有检查日志,当我转到页面时,我看到“php sytax error on line 173”
猜你喜欢
  • 1970-01-01
  • 2015-06-05
  • 2017-08-19
  • 1970-01-01
  • 2020-05-29
  • 2018-11-28
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多