检查“不为空”或空字符串的 PHP 语法是啥? [复制]

Posted

技术标签:

【中文标题】检查“不为空”或空字符串的 PHP 语法是啥? [复制]【英文标题】: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 的经验。请指教,谢谢!

【问题讨论】:

请在提问前使用搜索功能,正如***.com/questions/ask-advice 中提示的那样。之前有人问过并回答过:***.com/search?q=check+for+empty+value+php 【参考方案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”

以上是关于检查“不为空”或空字符串的 PHP 语法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

检查字符串是不是不为空且不为空

检查PHP数组是不是不为空的最简单方法[关闭]

检查变量是不是为空字符串或空字符串的更好方法?

如何检查变量是不是不为空?

检查所有三列是不是不为空或为空

JSR-303