0

我遇到了一个非常奇怪的 PHP 行为,我不明白它为什么会这样。我以这种方式使用 imagesetbrush 功能:

class foo
{
   function setbrush($image)
   {
       //$this->_resource contains the main image resource
       imagesetbrush($this->_resource, $image);
   }
}
...
$res=imagecreatefrompng("image.png");
$class->setbrush($res);

以这种方式它可以工作,但是如果我像这样更改代码:

class foo
{
   function setbrush($image)
   {
       $res=imagecreatefrompng($image);
       imagesetbrush($this->_resource, $res);
   }
}
...
$class->setbrush("image.png");

它不再起作用了。你看到一些错误吗?它没有向我显示任何消息,它根本不执行该功能。

4

2 回答 2

1

会不会是函数调用后对变量 $res 的引用消失了?您是否尝试过将其声明为类变量,就像 $_resource 变量一样?

于 2010-04-13T15:18:20.427 回答
0

也许在你的 foo 类的某个地方,工作目录发生了变化,所以它可能在打开时找不到 image.png//$this->_resource contains the main image resource

于 2010-04-13T15:26:34.047 回答