如何检查变量是否为Magic Constant?

时间:2017-10-01 14:43:53

标签: php if-statement constants

我没有找到任何在线方式或通过PHP文档来解决这个问题。

是否有友好或轻松的方式检查变量是__FILE__还是__DIR__ $var?与Magic Constant相似?

我想检查传递的function test($var) { if ($var == 'string_value') { // Do this... } elseif (is_magic_constant($var)) { // Do this... } else { // Do this... } } test('string_value'); test(__FILE__); 并在其上运行一些if / else条件。

小例子。

updateRequest.setHeader("Content-Type", "application/json;charset=UTF-8");
StringEntity entity= new StringEntity(json, "UTF-8");
updateRequest.setEntity(entity);

1 个答案:

答案 0 :(得分:0)

如果您致电test(__FILE__);,会立即展开__FILE__,以便您的test()功能收到完整文件路径的字符串。

如果您致电test('__FILE__');,它仍会收到一个字符串,但该字符串将为"__FILE__",您可以通过defined($var);运行该字符串,看看它是否为已知常量。

无法检查它是否是 magic 常量。因此,您无法将它们与reserved constants,已安装的PHP扩展定义的任何常量或您自己define()在应用程序中的常量区分开来。您可以检查的是$var中的字符串是否与定义的常量的名称匹配。