Php 为什么我不能在名称空间中使用CURL?

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 $

刚刚将我的项目转移到另一台PC上——几乎是相同的环境:Windows 10、Apache 2.4、PHP 7.0.3,但突然Curl不想初始化,就像它没有安装一样(,但扩展已加载

我发现它需要像\curl\u init()或\CURLOPT\u reurnTransfer这样的反斜杠,但我想知道为什么它在另一台具有相同环境的PC上没有这个可以正常工作?在新电脑上,如何让它在没有反斜杠的情况下工作

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)起到了帮助作用。