这真的很奇怪。我有一些代码,很高兴在php5-imagick模块的2.1.1RC1版本上工作。它基本上只是我编写的一个类,它扩展了 Imagick 类并管理存储在数据库中的图像。
自升级到版本3.0.0RC1(谢天谢地,仅在我的开发盒上),事情已经变得很糟糕。似乎对象成员是可写的但不可读。请参考以下示例代码:
class db_image extends IMagick {
private $data;
function __construct( $id = null ){
parent::__construct();
$this->data = 'some plain text';
echo $this->data;
}
这将绝对输出NOTHING。我的调试器指示 $ this-> data 的内容是正确的字符串值,但我无法从成员变量中读取该值。
严重。 WTF?有谁知道是什么导致了这个或之前见过它?我甚至不知道如何在我自己的类中复制这种行为。
答案 0 :(得分:1)
我遇到了同样的问题并提交了错误报告:http://pecl.php.net/bugs/bug.php?id=21229
现在似乎已经在svn修复了 - 但还没有尝试过。这些类型的错误似乎也不那么奇特:http://pecl.php.net/bugs/bug.php?id=15960&edit=2
答案 1 :(得分:1)
正如lifeofguenter指出的那样,它确实似乎是想象库中的一个错误。我用imagick-3.0.1和imagick-3.0.0遇到了这个问题 - 我已经通过降级到imagick-2.3.0解决了我自己的问题:
# pecl uninstall imagick
# pecl install imagick-2.3.0
答案 2 :(得分:0)
好吧,我不知道IMagick类,但可能它确实退出或死亡或者它的构造函数,所以只需测试以下是否有效:
class db_image extends IMagick
{
private $data;
function __construct( $id = null )
{
$this->data = 'some plain text';
echo $this->data;
parent::__construct();
}
}
new db_image;