我正在为cURL编写一个包装类,当您设置选项时,将选项名称保存到数组中,以便我可以管理设置了哪些选项。获取字符串的常量名称
问题是,cURL选项名称是常量,它们实际上是整数,所以我不能确定哪些选项已设置。从类
摘录:
class Curl {
protected $_options;
public function setOption($name, $value) {
$result = curl_setopt($this->_handle, $name, $value);
if ($result) {
$this->_options[$name] = $value;
}
return $result;
}
}
比方说,我设置以下选项:
array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_HEADER => 0,
CURLOPT_POST => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 30
)
然后Curl::_options
看起来像:
array(
(int) 78 => (int) 10,
(int) 42 => (int) 0,
(int) 47 => (int) 1,
(int) 19913 => (int) 1,
(int) 13 => (int) 30
)
我如何获得cURL常量的实际名称?这可能使用Reflection class?
反射会检索到这一点,如可能使用PHP记号器 –
我不认为有可能通过它的值得到常量的名称 - 例如,如果许多常量共享相同的值该怎么办?当然,你可以走很长的路:首先调用[get_defined_constants](http://php.net/manual/en/function.get-defined-constants.php),然后翻转结果数组。真正的问题是,你为什么需要这个? – raina77ow
@MarkBaker请举个例子吗? @ raina77ow我不想通过它的值来获取常量的名称,我想将常量名为'CURLOPT_CONNECTTIMEOUT'作为一个字符串''CURLOPT_CONNECTTIMEOUT''。 – BadHorsie