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 に答える