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)
}
我刚刚开始使用 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)
}