如何在PHP中测试多个var是否为空?

str*_*ade 1 php

我怎样才能测试var是否为空?我有这个阵列

array($myname,$myhouse,$mywife);
Run Code Online (Sandbox Code Playgroud)

如果没有使用循环,如何检查它们是否为空?

Eri*_*olb 8

你所要求的要么是不可能的,要么是滑稽的.您需要按名称显式测试每个变量,或使用循环来测试动态的变量集合.

  • 即使是聪明的答案也有循环,但它们对开发者来说是隐藏的.也许这是一个作业/作业问题? (3认同)

Fel*_*ing 7

一行(当然功能除外):

function not_empty($val) {
    return !empty($val);
}

$result = array_product(array_map('not_empty',$array));
Run Code Online (Sandbox Code Playgroud)

结果是,0如果一个变量为空,否则1.
但当然它不会告诉哪一个是空的.;)

请参见array_map,array_product.


Mar*_*tin 5

如果你的意思是没有写一个循环,那么你可以使用:

in_array(true, array_map(create_function('$x', 'return empty($x);'),$array));
Run Code Online (Sandbox Code Playgroud)

当然它会隐含地遍历你的阵列,实际上是两次!一旦检查空虚,再次检查结果.当你达到non_empty值时,你最好使用一个循环.