【问题标题】:what to use in place of namespace in php 5.2在 php 5.2 中用什么代替命名空间
【发布时间】:2013-09-26 02:24:08
【问题描述】:

对于旧版本的 php 5.2 和更早版本,我用什么代替命名空间 使用下面的代码会给出错误解析错误:语法错误,意外的 T_STRING

<?php

namespace Aws\Tests\CloudWatch;

use Aws\CloudSearch\CloudSearchClient;

class CloudSearchClientTest extends \Guzzle\Tests\GuzzleTestCase
{
    /**
     * @covers Aws\CloudSearch\CloudSearchClient::factory
     */
    public function testFactoryInitializesClient()
    {
        $client = CloudSearchClient::factory(array(
            'key'    => 'foo',
            'secret' => 'bar',
            'region' => 'us-east-1'
        ));

        $this->assertInstanceOf('Aws\Common\Signature\SignatureV4', $this->readAttribute($client, 'signature'));
        $this->assertInstanceOf('Aws\Common\Credentials\Credentials', $client->getCredentials());
        $this->assertEquals('https://cloudsearch.us-east-1.amazonaws.com', $client->getBaseUrl());
    }
}

【问题讨论】:

  • 命名空间支持从PHP 5 &gt;= 5.3.0开始提供。
  • OP 显然在询问 5.2 - 在标题和问题中。
  • 嗨 aav,欢迎来到 SO。
  • 您可以使用use 关键字删除namespace,并且可以在使用之前手动包含类,或者可以使用autoload,换句话说,您必须重构代码但最好更新@ 987654327@.

标签: php namespaces


【解决方案1】:

您在此处尝试使用的代码(看起来像 Amazon AWS 开发工具包?)与 PHP 5.2 不兼容。您需要升级到 PHP 5.3 或更高版本才能使用它。

【讨论】:

  • 不 - 实际上,the use keyword 根本不是这个意思。
  • 哦,好的,感谢您的帮助,我找到了一个旧 php 的我会尝试使用它
【解决方案2】:

我猜你只是不能在 php 5.2 代码中使用这些命名空间类。

【讨论】:

  • 在将使用更改为包含时,我是否只是摆脱了命名空间?
猜你喜欢
  • 2011-09-22
  • 2016-11-27
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2017-05-27
相关资源
最近更新 更多