php:当从不同文件中包含时,函数会中断

php:当从不同文件中包含时,函数会中断,php,Php,我正试着写一个包装器来包装图片条形图。 事实上,我写了整件事,但最后没有成功,所以现在我回到了基础。 下面的代码直接取自ImageGraph网站,作为条形图示例。我只是将它包装在一个函数中(现在忽略$data) 如果我从定义它的同一个文件(比如function.php)中调用该函数,则该函数可以正常工作。但是,如果我创建了第二个文件caller.php,其中我只包含一次_,或者只需要这个文件function.php,然后只调用该函数,它就会中断 有人能帮我吗?我可能犯了一些基本的错误,但我就是想

我正试着写一个包装器来包装图片条形图。 事实上,我写了整件事,但最后没有成功,所以现在我回到了基础。 下面的代码直接取自ImageGraph网站,作为条形图示例。我只是将它包装在一个函数中(现在忽略$data)

如果我从定义它的同一个文件(比如function.php)中调用该函数,则该函数可以正常工作。但是,如果我创建了第二个文件caller.php,其中我只包含一次_,或者只需要这个文件function.php,然后只调用该函数,它就会中断

有人能帮我吗?我可能犯了一些基本的错误,但我就是想不出来。它也可能是特定于Image_Graph的,因为如果我制作一个简单的函数,只打印Hello World并从另一个文件调用它,它就可以正常工作

谢谢, 丹尼尔



检查以确保两个文件位于同一位置。如果它们位于不同的目录中,如果您的包含文件没有从包含路径中提取库,则可能会导致问题。

您似乎试图通过php文件本身输出图像。 您的原始脚本中是否有类似标题(“内容类型:image/jpeg”)的行


您可能只想将图像写入目录,然后通过html上的img src='path'加载它,而不是通过php加载它

丹尼尔-首先,你能不能比“它坏了”更具体一点粘贴错误消息或它是如何被破坏的将有助于找到一个好的答案。当我说它被破坏时,它实际上意味着不同的事情,这取决于我试图做什么:)-如果我尝试一个只调用该函数的空脚本-在IE上,我会得到一个在左上角有破坏链接图像的空页面。-在Firefox上,我收到一条错误消息“图像”“无法显示,因为它包含错误。”-如果我在另一个已经显示了一些图形的页面中包含此函数调用,我会得到一个类似于二进制输出的转换为文本:�巴布亚新几内亚��� IHDR��,�������ݽKDo是否打开了PHP错误?PHP错误会很有用,它们在不同的目录中,但我甚至尝试在我的include上设置绝对路径。问题是,它似乎可以找到文件,因为如果我将函数更改为更简单的函数,比如打印Hello World,它工作得很好。就是这样。我刚刚加了一句感谢的话:)
<?php
include_once('Image/Graph.php');

function DrawBarChart($width, $height, $data)
{
 // create the graph
 $graph = Image_Graph::factory('graph', array($width, $height));

 // create the plotarea
 $plotArea =& $graph->addNew('plotarea');

 // create a dataset
 $dataset =& Image_Graph::factory('dataset');

 // add points
 $dataset->addPoint('Denmark', 10); 
 $dataset->addPoint('Norway', 3); 
 $dataset->addPoint('Sweden', 8); 
 $dataset->addPoint('Finland', 5); 

 $plot =& $plotArea->addNew('bar', &$dataset); 

 $graph->done();
}
?>