PHP Imagick setImageCompression

PHP Imagick setImageCompression

我刚刚开始使用 Imagick / ImageMagick 库编写一些 php,并且看到了几个关于 setImageCompression 的示例,这些示例似乎以不同的方式实现。

例如我看到它是这样使用的:

$image->setImageCompression(Imagick::COMPRESSION_LZW);

还有这样的:

$image->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);

那么,声明压缩类型前的反斜杠有什么意义呢?这是特定于压缩类型吗?我看到的示例中的拼写错误或其他原因?

只有在使用 namespaces 时才需要反斜杠。

例如,前者在 namespace Foo 中不起作用,因为它会查找 class 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)
}