声明的全局变量在函数内部没有改变

时间:2015-11-01 20:39:18

标签: php function global-variables

我查看了几个类似的代码on at the PHP documentation site,但这个例子只是拒绝工作。

$catalog = 0; // initialize variable outside of function scope

function catalog_init() 
{
  global $catalog;
  if (!file_exists ("cd_catalog.xml")){

    $xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><catalog></catalog>";
    $catalog = new SimpleXMLElement($xmlString);
    $catalog->asXML('cd_catalog.xml');
  } else
    $catalog = simplexml_load_file("cd_catalog.xml");
}

catalog_init(); // should initialize $catalog, but doesn't.

在调用catalog_init()之后,$ catalog仍然是0.我知道全局变量通常不受欢迎,但这是一个小型的学校作业。任何人都可以找出为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

$catalogue = 0;
$catalogue = catalogue_init($catalogue);
function catalogue_init($catalogue) {
    //your function content
    return $catalogue;
}

你的功能一无所获。将$ catalog作为参数传递并删除全局$ catalog