我得到这样的数组数据:
$tags = $_GET['item']['tags'];
if ($tags){
foreach ($tags as $tag){
由于标签数据是从输入字段发送的,输入字段也可以是空的。因此,如果$tags
没有获得任何数据,我会收到以下通知:
Message: Undefined index: item
如何避免此通知?
如果我试试这个:
$tags = isset($_GET['item']['tags']);
然后,如果$tags
没有获得任何数据,它不会显示任何警告,但如果它获得任何数据,那么我会收到以下警告:
Message: Invalid argument supplied for foreach()
如何才能这样做,以便$tags
获取任何数据,然后转到foreach
循环,否则不要发出通知,说明它没有得到任何数据。
感谢。
答案 0 :(得分:9)
你需要这样做:
$tags = isset($_GET['item']['tags']) ? $_GET['item']['tags'] :'';
答案 1 :(得分:1)
试试这个:
if( !is_null( $_GET["item"]["tags"] ) )
{
$tags = $_GET["item"]["tags"];
foreach($tags as $tag)
{
//do stuff here
}
}
另外,您在问题中说过要发布数据,但是使用$ _GET来检索变量。这也可能是一个问题。
答案 2 :(得分:0)
好吧,如果您只是想关闭错误显示,那么通过修改php.ini以显示错误很容易......
然后当我调试时,我使用它来确保我能看到这些错误......
$debug = 1;
if($debug){
error_reporting(E_ALL);
ini_set('display_errors', '1');
}
无论何时运行foreach循环,您都需要对数组运行计数
$array = array();
if(count($array) > 0){
foreach($array as $key=>$value){
//Stuff here...
}
}
在你的情况下,请将其归结为:
$tags = $_GET['item']['tags'];
//TAGS MUST BE AN OBJECT OR AN ARRAY....
if (count($tags) > 0){
foreach($tags as $tag){
//....Code here.
}
}