我得到了以下数组:
array(1) {
[0]=>
array(2) {
["name"]=>
string(0) ""
["fistname"]=>
NULL
}
}
如果不为空,我想对其进行处理。我尝试过:
if (!empty($data->User)) {
echo 'filled';
} else {
echo 'empty';
}
但这会返回
已填充
在Marcin Orlowski回答后编辑
$user = $data->User();
var_dump($user);
if (!empty($user)) {
echo 'filled';
} else {
echo 'empty';
}
显示:
array(1) {
[0]=>
array(2) {
["name"]=>
string(0) ""
["fistname"]=>
NULL
}
}
答案 0 :(得分:1)
据我了解,在您的代码中,对象$ data的功能User()返回了您提到的数组。如果是这种情况,那么$ data-> User()(即您的数组)肯定是非空的,因为它有一个条目即数组
array(2) {
["name"]=>
string(0) ""
["fistname"]=>
NULL
}
如果要检查'name'和'firstname'属性是否为空,则需要这样的一段代码,
if (!empty($data->User[0]['name']) or !empty($data->User[0]['firstname'])) {
echo 'filled';
} else {
echo 'empty';
}
甚至更好地在您的类中进行检查,即在类中为$ data编写类似的代码
public function isEmptyUser() {
return (empty($this->name) && empty($this->firstname));
}
答案 1 :(得分:0)
您的问题很清楚,因此我假设您的User()
返回显示的数组。如果是这样,您会错过docs:
确定变量是否被认为是空的。如果变量不存在或其值等于FALSE,则认为该变量为空
以下值被认为是空的:
...
array()(一个空数组)
在您的情况下都不是,因此所有功能都可以正常使用。出于调试目的,您还可以var_dump()
来查看返回的数据:
$user = $data->User();
var_dump($user);
if (!empty($user) {
echo 'filled';
} else {
echo 'empty';
}