有人遇到过这个问题吗?
var_dump(CRYPT_SHA256 == 1); // returns bool(true)
var_dump(defined(CRYPT_SHA256)); // returns bool(false)
添加引号
defined('CRYPT_SHA256')
CRYPT_SHA256
常量的值是否也是另一个常量的名称...defined(CRYPT_SHA256) === defined('1');
编辑:添加命名空间
如果您的常量在命名空间中定义,您必须在常量名称中包含它。
namespace Some\Namespace;
const MY_CONST = 'value';
var_dump( defined('MY_CONST') ); // false unless another constant has been defined
var_dump( defined('Some\Namespace\MY_CONST'); // true
这在原问题中并非如此,但它也可能是同样问题的原因。
第一条语句对我也返回了false。
我稍微修改了一下,如下所示
define('CRYPT_SHA256',1);
//var_dump(CRYPT_SHA256 == 1); // returns bool(true)
var_dump('CRYPT_SHA256');
var_dump(defined('CRYPT_SHA256')); // returns bool(false)