从它的字符串名称中获取PHP常量

Jer*_*via 3 php

我正在创建一个小的LDAP连接类,但这通常适用于PHP常量.

PHP有常量,如LDAP_OPT_PROTOCOL_VERSION,LDAP_OPT_HOST_NAMLDAP_OPT_TIMELIMIT,用于以下函数:

ldap_set_option ( $myLdapConnection, LDAP_OPT_PROTOCOL_VERSION, 3 )

在我的LDAP连接类中,我希望能够像这样传递数组中的选项


array( 
'LDAP_OPT_PROTOCOL_VERSION' => 3,
'LDAP_OPT_TIMELIMIT' => 1000
);

然后我想做以下类型的循环


foreach( $options as $option => $value ){
      ldap_set_option ( $myLdapConnection, $option, $value );
}

但是,如果我尝试这个,我会收到一个错误,指出函数需要一个long,而不是一个字符串.我怎么能通过这个?

编辑:Bart是对的,我意识到.我会这样做的.它甚至会更快,因为不会涉及到字符串.

但是要清楚,如果应该有常量重叠,例如当我定义自己的常量时,那么它可能是一个问题.

Gab*_*aru 15

您可以使用 constant($option)

  • @Jerry Saravia这回答了你的问题,但我推荐@Bart S.的解决方案来做你需要的. (3认同)

Bar*_* S. 5

为什么不像这样构建你的数组:

array( 
    LDAP_OPT_PROTOCOL_VERSION => 3,
    LDAP_OPT_TIMELIMIT => 1000
);
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因PHP更改(例如,新的PHP版本)您使用​​的任何常量的值,也保持其工作.