检查“不为空”或空字符串的 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 语法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章