-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

私の元のコメントから:

私が見る限り、最も可能性の高い説明は、コマンドラインが Web サーバーとは異なるバージョンの PHP を実行しているということです。コマンドラインで php -v を実行して、期待するバージョンが実行されていることを確認してください。

OPの反応

@Spudley、フィードバックありがとうございます。私の投稿を実際に読んでいて、推測をしていないのはあなただけのようです。あなたが言ったように、私は「php -v」を実行し、ここに私が得たものがあるので、以前のバージョンの PHP を実行していることは明らかです: PHP 4.4.9 (cgi-fcgi) (ビルド: 2013 年 7 月 22 日 09:48:43) ) Copyright (c) 1997-2008 The PHP Group Zend Engine v1.3.0、Copyright (c) 1998-2004 Zend Technologies

では、明らかに問題です。そこにPHP 4.4があります。それは行く必要があります。

解決策は、壊れた古いバージョンの PHP を取り除き、コマンドライン php が Web サーバーと同じバージョンを実行していることを確認します。

実行しているオペレーティング システムを指定していないため、アンインストールの方法が明らかに大きく異なります。

アンインストール ツールで古い PHP バージョンが見つかった場合は、それを実行してください。うまくいけば、魔法のように新しい PHP バージョンを取得できるようになります。そうでない場合、構成方法によっては、これを達成する最も簡単な方法は、両方のPHP バージョンをアンインストールしてから、5.4 バージョンを再インストールすることです。

于 2013-10-22T15:42:02.820 に答える