Php 为什么我不能在名称空间中使用CURL?
刚刚将我的项目转移到另一台PC上——几乎是相同的环境:Windows 10、Apache 2.4、PHP 7.0.3,但突然Curl不想初始化,就像它没有安装一样(,但扩展已加载) 我发现它需要像\curl\u init()或\CURLOPT\u reurnTransfer这样的反斜杠,但我想知道为什么它在另一台具有相同环境的PC上没有这个可以正常工作?在新电脑上,如何让它在没有反斜杠的情况下工作Php 为什么我不能在名称空间中使用CURL?,php,curl,Php,Curl,刚刚将我的项目转移到另一台PC上——几乎是相同的环境:Windows 10、Apache 2.4、PHP 7.0.3,但突然Curl不想初始化,就像它没有安装一样(,但扩展已加载) 我发现它需要像\curl\u init()或\CURLOPT\u reurnTransfer这样的反斜杠,但我想知道为什么它在另一台具有相同环境的PC上没有这个可以正常工作?在新电脑上,如何让它在没有反斜杠的情况下工作 public function getCurl(int $instantiate, array $
public function getCurl(int $instantiate, array $params = [], string $url = ''): CUrl
{
$args = func_get_args();
array_shift($args);
return self::handleCaching($instantiate, 'asoft\\CUrl', ...$args);
}
protected function handleCaching(int $instantiate, string $class, ...$args)
{
switch ($instantiate) {
case self::NEW_INSTANCE:
return new $class(...$args);
case self::CACHED_INSTANCE:
if (!array_key_exists($class, self::$cache)) {
self::$cache[$class] = new $class(...$args);
}
return self::$cache[$class];
}
throw new EngineError('Wrong value for instantiating type: $instance.');
}
注意:使用未定义的常量CURLOPT_RETURNTRANSFER-假定
“CURLOPT_RETURNTRANSFER”输入
C:\Apache24\htdocs\audiophilesoft.local\vendor\asoft\PersistenceFactory.php:185注意:
使用未定义的常量CURLOPT_SSL_VERIFYPEER-假定
中的“CURLOPT_SSL_VERIFYPEER”
C:\Apache24\htdocs\audiophilesoft.local\vendor\asoft\PersistenceFactory.php:185
错误:在中调用未定义的函数asoft\curl\u init()
C:\Apache24\htdocs\audiophilesoft.local\vendor\asoft\CUrl.php:27堆栈
跟踪:
第185行是“受保护的函数handleCaching(…”,如您所见,这里绝对没有常量
我只有在新电脑上才遇到这个问题。看起来,问题是PHP和/或Apache文件夹不在Windows包含路径中。也许你应该发布一些代码。正如你所看到的,我使用缓存。将Apache从旧电脑复制到新电脑解决了这个问题。但我仍然不知道为什么会发生这种情况……我猜斜杠可以帮助解决这个问题ps.会像我想象的那样,在所有的旋度函数和常量前面加上“\”非常困难(有时真的很难不忘记或错过某个地方)?idk会有帮助还是没有帮助,只是猜测一下…似乎PHP7在当前范围内搜索。:-/所以旧机器也有PHP7?奇怪…@向导,非常奇怪。而且简单的实例化在任何名称空间中都能很好地工作…所以问题只在于我使用的PersistanceFactory-使用caching和动态calss名称。最重要的是奇怪的是,更改Apache安装(而不是PHP)起到了帮助作用。