foreach用一个简单的变量?

QiM*_*ath 1 php

我有一个看起来像这样的页面:

<?php $items = isset($_GET['id']) ? gg::getItemID($_GET['id']) : gg::getAllItems();?>
...code
...code
<?php foreach ($items as $item):?>
...code
...code
...code
<?php endforeach;?>
...code
Run Code Online (Sandbox Code Playgroud)

该方法getItemID()将获取表中的特定行并返回它,而getAllItems()将获取所有这些行.

但是foreach不会一起工作$items = gg::getItemID($_GET['id'],我真的不知道我怎么能成立一个"通用的方法",使其工作是否getItemID()还是getAllItems()被调用.

有一个简单的方法吗?

eli*_*ide 5

只需动态制作阵列:

$items = isset($_GET['id']) ? array(gg::getItemID($_GET['id'])) : gg::getAllItems();
//                            ^ use array() to force it to be an array
Run Code Online (Sandbox Code Playgroud)

请注意,您不需要像'0' => ...其中一条注释所指定的那样指定索引(如).元素将自动获取索引0(整数).

另外,请务必$_GET['id']仔细处理该值.根据具体gg::getItemID()情况,您可能会遇到SQL注入漏洞.