曾几何时,在遥远的一片土地上,有一个叫做" $languages." 的小镇.在这个小镇上生活着许多小小的东西$language- 有些大,有些小,有些吃饱了,有些瘦...这就是$language使小镇变得如此美好的各种各样的东西.
每年一次,小小的" $languages"将一个接一个地寄往一个奇怪而奇妙的地方.在这个陌生的地方,每种语言都变得同样微不足道,而且有些奇怪的东西 - 有些人称它为" $qfactor,"(但没有人知道为什么)从它们中出来.对于一些人来说,它完全没有了,他们就变成了一个.有时,它是畸形的 - 在这种情况下," $language"将被迅速送回家.
然后,每一个最后的小" $language"将穿过一个神奇的门户(称为伟大的if).这个网关让那些$language通过它的人感到非常惊愕,因为它决定了他们是否是其中之一$accepted.这些" $accepted"会神奇地被带到一个没有人知道的地方,没有人敢(或可能?)说出来 - 因为,奇怪的是,第二天,每一个" $language,"都会被发现回到他家.
然后,有一天,它if变得破碎了,每一个" $language"都会非常粗鲁地吐出来,因为外国的声音宣布:Notice: Undefined variable: langauge in /var/www/nginx-default/path/to/lib/http/languages.php.
TL:DR;
foreach ($raw_languages as $language_value) {
$language = '';
$language_values = explode(';', $language_value);
// If the qfactor was not supplied
if (count($language_values) == 1) {
// Lower-case the language
$language = strtolower($language_values[0]);
// Default to a q-factor of one
$qfactor = 1;
// If the qfactor was supplied
} else {
$language = strtolower($language_values[0]);
$qfactor = $language_values[1];
// Validate the q-factor
if (!is_numeric($qfactor)) {
// If it's not numeric (invalid) skip it
continue;
}
}
// If this isn't one of the accepted languages, skip it.
if (!in_array($langauge, $accepted)) {
continue;
}
// Add it to the languages array
$languages[$language] = $qfactor;
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,if (!in_array($language, $accepted)我得到一个错误说明:`Notice: Undefined variable: langauge in /var/www/nginx-default/path/to/lib/http/languages.php.奇怪的是,我甚至可以潜入print()同一行的调用(通过将其放在if语句中)并且我不会得到相同的错误 - 事实上,这样做会给出预期的输出!
我很困惑为什么会发生这种情况(而且由于它阻挡的工作而感到无聊,正如你可以从故事中看到的那样),所以任何帮助都会受到赞赏.
谢谢!
你拼错language了:
if (!in_array($langauge, $accepted)) {
continue;
}
Run Code Online (Sandbox Code Playgroud)
交换a和u在$langauge:)