玩家要么是空的,要么是逗号分隔的列表(或者是单个值)。检查它是否为空的最简单的方法是什么?我假设我可以这样做,只要我取回$gameresult数组到$gamerow?在这种情况下,如果$playerlist是空的,跳过爆炸可能会更有效,但为了讨论,我如何检查数组是否为空?
$gamerow = mysql_fetch_array($gameresult);
$playerlist = explode(",", $gamerow['players']);
玩家要么是空的,要么是逗号分隔的列表(或者是单个值)。检查它是否为空的最简单的方法是什么?我假设我可以这样做,只要我取回$gameresult数组到$gamerow?在这种情况下,如果$playerlist是空的,跳过爆炸可能会更有效,但为了讨论,我如何检查数组是否为空?
$gamerow = mysql_fetch_array($gameresult);
$playerlist = explode(",", $gamerow['players']);
当前回答
为什么没有人回答:
$array = [];
if($array == []) {
// array is empty
}
其他回答
如果你只需要检查数组中是否有任何元素,你可以使用数组本身,因为PHP的松散类型,或者-如果你喜欢更严格的方法-使用count():
if (!$playerlist) {
// list is empty.
}
if (count($playerlist) === 0) {
// list is empty.
}
如果你需要在检查之前清理空值(通常是为了防止奇怪的字符串爆炸):
foreach ($playerlist as $key => $value) {
if (!strlen($value)) {
unset($playerlist[$key]);
}
}
if (!$playerlist) {
//empty array
}
$gamerow = mysql_fetch_array($gameresult);
if (!empty(($gamerow['players'])) {
$playerlist = explode(",", $gamerow['players']);
}else{
// do stuff if array is empty
}
为什么没有人回答:
$array = [];
if($array == []) {
// array is empty
}
已经讨论了许多检查数组是否为空或不包含值的选项
If ($playerlist) {}
If (!empty($playerlist)) {}
If (count($playerlist) > 0) {}
各有利弊。
但还有另一种选择,如果你确定,你的数组只有数字键,从0开始(即,这发生在你爆炸()一个字符串):
if (isset($playerlist[0])) {
// do something
}
这甚至比其他解还要快一点。
在PHP中,空数组是错误的,因此甚至不需要像其他人建议的那样使用empty()。
<?php
$playerList = array();
if (!$playerList) {
echo "No players";
} else {
echo "Explode stuff...";
}
// Output is: No players
PHP的empty()确定变量是否存在或值是否为假值(如array(), 0, null, false等)。
在大多数情况下,你只想检查!$emptyVar。使用empty($emptyVar)如果变量可能没有设置,你不愿意触发一个E_NOTICE;在我看来,这是个坏主意。