这真的很奇怪.我有一些代码,很高兴在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;
}
Run Code Online (Sandbox Code Playgroud)
这将绝对输出NOTHING.我的调试器指示$ this-> data的内容是正确的字符串值,但我无法从成员变量中读取该值.
认真.WTF?有谁知道是什么导致了这个或之前见过它?我甚至不知道如何在我自己的类中复制这种行为.
我遇到了同样的问题并提交了错误报告:http://pecl.php.net/bugs/bug.php ?id=21229
现在似乎已经在 svn 中修复了 - 但还没有尝试过。此外,这些类型的错误似乎并不那么奇特:http://pecl.php.net/bugs/bug.php ?id=15960&edit=2