考虑以下函数声明来检查双语网站上的当前语言:
function checkNewsLanguage(){
$requiredURL = $_SERVER['REQUEST_URI'];
$myLanguage = explode('?lang=',$requiredURL);
if($myLanguage=='en')
return false;
else return true;
}
然后我使用以下函数获得所需语言的XML对象:
function item1('checkNewsLanguage')
if(checkNewsLanguage()){
$urlD = "someurl1";
$xmlD = simplexml_load_file(cacheFetch($urlD,'cachedfeed1.xml',3600));
$itemD = '';
if($xmlD === FALSE)
{$itemD = '';}
else
{$itemD = $xmlD->channel->item;}
}
else {
$urlD = "someurl2";
$xmlD = simplexml_load_file(cacheFetch($urlD,'cachedfeed2.xml',3600));
$itemD = '';
if($xmlD === FALSE)
{$itemD = '';}
else
{$itemD = $xmlD->channel->item;}
}
return $itemD;
}
function item2('checkNewsLanguage')
//Analogic procedure
我得到"Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting '&' or T_VARIABLE "
。如您所见,item1()和item2()中的函数调用不正确。非常感谢任何代码帮助。
答案 0 :(得分:2)
你的函数参数需要是一个变量,而不仅仅是一个字符串(如错误所示)。您的函数应定义如下:
function item1($variableHere)
而非function item2('string here')
。
当我再次查看您的代码时,您尝试执行的操作似乎是根据item1()
和item2()
的参数调用某个函数(因此,如果您通过item1(foo)
你想调用foo()
函数。
尝试:
function item1($function)
{
if ($function())
{
...
}
}
和item2()
类似。这样你就可以调用item1('checkNewsLanguage')
,这就是它将在体内调用的函数。
答案 1 :(得分:1)
问题在线:
function item1('checkNewsLanguage')
你不能在那里有'checkNewsLanguage'
。您需要有一个接受函数参数的变量。