我刚刚开始使用Imagick/ImageMagick库编写一些PHP,并且看到了几个关于setImageCompression的示例,它们似乎实现了不同的东西。
例如,我看到它是这样使用的:
$image->setImageCompression(Imagick::COMPRESSION_LZW);
也像这样:
$image->setImageCompression('Imagick::COMPRESSION_UNDEFINED);
那么,在声明压缩类型之前,反斜杠的相关性是什么?这是特定于压缩类型的吗?我见过的例子中的拼写错误还是其他什么?
只有在使用命名空间时才需要反斜杠。
例如,前者在namespace Foo
中不起作用,因为它将查找类Foo'Imagick
:
namespace {
var_dump(Imagick::COMPRESSION_LZW); // int(11)
}
namespace Foo {
var_dump(Imagick::COMPRESSION_LZW); // Class 'Foo'Imagick' not found
}
第二种方法适用于所有情况:
namespace {
var_dump('Imagick::COMPRESSION_LZW); // int(11)
}
namespace Foo {
var_dump('Imagick::COMPRESSION_LZW); // int(11)
}