林'得到错误:
严格标准:只应通过引用传递变量
这是代码:
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> ';
}
}
我在这里看到过有关它的其他消息,但我似乎无法解决错误
答案 0 :(得分:2)
此错误是由于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
从那里引用:
mixed array_shift(array &amp; $ array)
从手册中可以看出,您必须通过引用传递它(因为您无法更改函数的签名),您可以通过引用传递它们:
答案 1 :(得分:0)
就像你在手册中看到的那样(here)array_shift
引用数组而非实际值。
因此,您必须将array_values($meeting)
分配给某个变量并将其与array_shift
一起使用。
答案 2 :(得分:-1)
尝试以下代码
$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> ';
}
}