-1

我有 PHP 5.4.21

我正在使用可以在浏览器中正常工作的 Twilio API,但在命令行模式下,我收到以下错误:

<b>Parse error</b>:  syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in <b>sms/Services/Twilio.php</b> on line <b>36</b>

指定文件的第 36 行是以下类的一部分,请参阅我的注释,其中我指定了第 36 行。

根据一些初始反馈请求,我在第 36 行之前和之后添加了所有代码行以显示这些行的上下文。

<?php
function Services_Twilio_autoload($className) {
    if (substr($className, 0, 15) != 'Services_Twilio') {
        return false;
    }
    $file = str_replace('_', '/', $className);
    $file = str_replace('Services/', '', $file);
    return include dirname(__FILE__) . "/$file.php";
}

spl_autoload_register('Services_Twilio_autoload');

/**
 * Create a client to talk to the Twilio API.
 *
 *
 * :param string               $sid:      Your Account SID
 * :param string               $token:    Your Auth token from
 *      twilio.com/user/account
 * :param string               $version:  API version to use
 * :param $_http:    A HTTP client for making requests.
 * :type $_http: :php:class:`Services_Twilio_Http`
 * :param int                  $retryAttempts:
 *      Number of times to retry failed requests. Currently only idempotent
 *      requests (GET's and DELETE's) are retried .
 */

class Services_Twilio extends Services_Twilio_Resource
{
    /* this is Line 36... */
    const USER_AGENT = 'twilio-php/3.12.0';

    protected $http;
    protected $retryAttempts;
    protected $last_response;
    protected $version;
    protected $versions = array('2008-08-01', '2010-04-01');

    public function __construct(
        $sid,
        $token,
        $version = null,
        Services_Twilio_TinyHttp $_http = null,
        $retryAttempts = 1
    ) {
              $_http = new Services_Twilio_TinyHttp(
                  "https://api.twilio.com",
                  array("curlopts" => array(
                      CURLOPT_USERAGENT => self::USER_AGENT,
                      CURLOPT_HTTPHEADER => array('Accept-Charset: utf-8'),
                      CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem',
                  ))
              );
    }
}
?>
4

1 回答 1

1

从我原来的评论:

据我所知,最可能的解释是您的命令行运行的 PHP 版本与您的 Web 服务器不同。尝试在命令行运行 php -v 以确认它正在运行您期望的版本。

OP的回应

@Spudley,感谢您的反馈。似乎你是唯一一个真正阅读我的帖子而不做假设的人。正如你所说,我运行了“php -v”,这就是我得到的,所以很明显我正在运行 PHP 的早期版本:PHP 4.4.9 (cgi-fcgi)(构建时间:2013 年 7 月 22 日 09:48:43 ) 版权所有 (c) 1997-2008 PHP Group Zend Engine v1.3.0,版权所有 (c) 1998-2004 Zend Technologies

所以我们开始了,这显然是问题所在。您已经安装了 PHP 4.4。那需要去。

解决方案摆脱旧版本的 PHP,并确保您的命令行 php 运行与您的 Web 服务器相同的版本。

您还没有指定您正在运行的操作系统,这显然会对您如何进行卸载产生重大影响

如果你能在你的卸载工具中找到旧的 PHP 版本,那就去做吧,希望你能开始用魔法来选择新的 PHP 版本。如果不是,那么根据配置的不同,您可能会发现最简单的方法是卸载两个PHP 版本,然后重新安装 5.4 版本。

于 2013-10-22T15:42:02.820 回答