Im'正在获取错误:
严格标准:只有变量才能通过引用传递
这是代码:
foreach (array_unique($meeting) as $entry) {
if (array_shift(array_values($meeting)) == $entry and $venue =="" or $venue == $entry) {
echo '<b><a href="http://mr-tipster.com/pages/racecard.php?venue='.$entry.'">'.$entry.'</a> </b> ';
if ($venue =="") {
$venue = array_shift(array_values($meeting));
}
} else {
echo '<a href="http://mr-tipster.com/pages/racecard.php?venue='.$entry.'">'.$entry.'</a> ';
}
}
我在这里看到了其他关于它的消息,但我似乎无法解决错误
此错误是由于array_shift()
函数引起的。你不能通过
array_values($meeting)
直接到该函数,您必须将其保存在tmp变量中,例如:
$tmp = array_values($meeting);
然后你可以这样使用它:
$venue = array_shift($tmp); //Same for the if statement
有关array_shift()
的更多信息,请参阅手册:https://php.net/manual/en/function.array-shift.php
还有一句话:
混合array_shift(array&$array)
正如你从手册中看到的,你必须通过引用传递它(因为你不能更改函数的签名),你可以通过引用传递这些:
- 变量,即foo($a)
- 新语句,即foo(New foobar())
- 从函数返回的引用,即:
通过参考
如您在手册(此处)中所见,array_shift
引用的是数组,而不是实际值。
因此,您必须将array_values($meeting)
附加到某个变量,并将其与array_shift
一起使用。
尝试以下代码
$meeting = array_unique($meeting);
foreach ( $meeting as $entry) {
$meeting = array_values($meeting);
$meeting = array_shift($meeting);
if ( $meeting == $entry && $venue =="" || $venue == $entry)
{
echo '<b><a href="http://mr-tipster.com/pages/racecard.php?venue='.$entry.'">'.$entry.'</a> </b> ';
if ($venue =="")
{
$meeting = array_values($meeting);
$venue = array_shift($meeting);
}
}
else
{
echo '<a href="http://mr-tipster.com/pages/racecard.php?venue='.$entry.'">'.$entry.'</a> ';
}
}