我正在一个函数内部构建一个XML页面,由于一些奇怪的原因,我没有把整个东西吐出函数。我试过了
return $thisXml;
}
echo $thisXML;
我只获得函数前变量中的xml声明。 如果我在函数中放置一个回声,我会尽可能地回复所有内容。
我的网页基本上看起来像这样
$thisXml = 'xml declaration stuff';
function getThisXML($thisXML){
for(i=1; i<5; i++){
$query "has the 5 in it";
while ($mysqlQuery =mysql_fetch_array($theQuery) {
$thisXml.='add the xml';
}
$thisXml.='close the last element';
return $thisXml;
}
echo $thisXml;
正如我所说,如果我用'echo'替换'return',我会得到所有不错的xml。如果我在函数外回声,我只得到原始声明。
真的很奇怪,我整天都在为这一天苦苦挣扎。答案 0 :(得分:10)
return $thisXml;
}
echo $thisXML;
$ thisXML;仅存在于函数的范围内。
要么$ thisXML;全局(坏主意)或echo getThisXML()
其中getThisXML是返回$thisXML
的函数;
答案 1 :(得分:7)
你实际上是在调用这个函数:
$thisXml = getThisXML($someinput);
也许是一个愚蠢的问题,但我在你的描述中没有看到它。
答案 2 :(得分:2)
答案 3 :(得分:2)
您需要调用该函数!
$thisXml = 'xml declaration stuff';
echo getThisXML($thisXML);
或者通过引用传递变量:
$thisXml = 'xml declaration stuff';
function getThisXML(&$thisXML){
...
return $thisXml;
}
getThisXML($thisXML);
echo $thisXml;
答案 4 :(得分:1)
您正在尝试使用在函数范围内定义的变量。
使用:
$thisXML;
function do(){
global $thisXML;
$thisXML = "foobar";
}
print $thisXML;
答案 5 :(得分:1)
返回变量并不意味着它会全局影响该变量,这意味着函数调用会计算到使用它的值。
$my_var = 5;
function my_func() {
$my_var = 10;
return $my_var;
}
print my_func();
print "\n";
print $my_var;
这将打印
10
5
答案 6 :(得分:0)
You can create function in php this way:
<?php
$name = array("ghp", "hamid", "amin", "Linux");
function find()
{
$find = 0;
if(in_array('hamid', $name))
{
$find = 1;
return $find;
}
else
{
return $find;
}
}
//###################
$answare = find();
echo $answare;
?>