Php 在curl_init/curl_setopt中使用常量字符串
这可能很琐碎,但我快疯了。 为什么以下方法有效:Php 在curl_init/curl_setopt中使用常量字符串,php,curl,Php,Curl,这可能很琐碎,但我快疯了。 为什么以下方法有效: class myClass { public function __construct() { $ch = curl_init("http://myserver.com/myscript.php"); $fields = array('myKey' => 'myValue'); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFI
class myClass {
public function __construct() {
$ch = curl_init("http://myserver.com/myscript.php");
$fields = array('myKey' => 'myValue');
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));
$result = curl_exec($ch);
curl_close($ch);
echo curl_error($ch);
echo $result
}
}
$instance = new myClass();
……或者
class myClass {
private $uri = "http://myserver.com/myscript.php"; // <<---
public function __construct() {
$ch = curl_init($uri); // <<--
$fields = array('myKey' => 'myValue');
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));
$result = curl_exec($ch);
curl_close($ch);
echo curl_error($ch);
echo $result
}
}
$instance = new myClass();
看起来const字符串没有在函数curl_init中展开。如果改用curl_setopt,也会发生同样的情况。
我在谷歌上搜索过,但是,唉,没有结果。
有什么想法吗
编辑:我为我的打字错误道歉。我已经编写了考虑常数问题的代码。这就是为什么我没有注意到“公共功能”。那不是我的问题。我已经更正了代码。不,据我所知,没有一个PHP版本可以在构造之前省略“public function”。Hm,如果你简单地将常量转储到你的方法中,你会得到什么?对于我们中较不高级的人来说:哪个版本的php可以在方法声明中省略
\uu construct()
?URI
引用全局常量,不是myClass::URI
1。@mario确实,很好地发现了。实际上,这会在错误日志文件中引发警告。。。任何像样的IDE都应该指出这一点。$this->uri或self::uri
class myClass {
const URI = "http://myserver.com/myscript.php"; // <<---
public function __construct() {
$ch = curl_init(URI); // <<--
$fields = array('myKey' => 'myValue');
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));
$result = curl_exec($ch);
curl_close($ch);
echo curl_error($ch);
echo $result
}
}
$instance = new myClass();
"Could not resolve remote host URI"