尝试测试php函数时没有返回任何内容

时间:2013-04-18 17:16:50

标签: php testing localhost

我正在尝试在浏览器中测试一个函数,但没有返回任何内容。我访问了链接http://localhost/myfunctions.php?runFunction=writeJSON
我的职责是:

function writeJSON()
{
    $myfile="testson.json";
    $fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
    global $arrayForJSON;
    if(isset($arrayForJSON))
    {
        fwrite($fileout,json_encode($arrayForJSON));
        echo "done";
    }
    else echo "Error: could not write to JSON file";
    fclose($myfile);
}

我在哪里弄错了,测试这个功能的正确方法是什么,或者我做错了什么?

该函数似乎没有运行,因为没有显示“完成”或“错误:无法写入JSON文件”,也没有对我的文件进行任何更改。

2 个答案:

答案 0 :(得分:3)

如果你想通过get运行一个函数,你需要包含get ...

的代码
//This is the function
function writeJSON()
{
    $myfile="testson.json";
    $fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
    global $arrayForJSON;
    if(isset($arrayForJSON))
    {
        fwrite($fileout,json_encode($arrayForJSON));
        echo "done";
    }
    else echo "Error: could not write to JSON file";
    fclose($myfile);
}


// This will only call the function if ?runFunction=writeJSON
//is on the end of the URL
if(!empty($_GET["runFunction"])){
    if($_GET["runFunction"] == "writeJSON"){
        writeJSON(); // This line is the actual call to the function
    }
}

但是,当然,如果您希望每次进入页面时都运行它,只需添加

writeJSON();

答案 1 :(得分:2)

好吧,你需要运行这个功能。在URL中传递它不会做任何事情。

<?
function writeJSON()
{
$myfile="testson.json";
$fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
global $arrayForJSON;
if(isset($arrayForJSON))
{
fwrite($fileout,json_encode($arrayForJSON));
echo "done";
}
else echo "Error: could not write to JSON file";
fclose($myfile);
}
writeJSON();
?>