意想不到的'使用' (T_USE)尝试使用作曲家时

时间:2015-10-26 10:04:36

标签: php oop namespaces

所以,我正在尝试使用coinbase API。我正在尝试一个简单的测试,看看我是否可以使它工作,但我得到了各种作曲家错误。

目前,我正在意外地使用'对于此代码:

            use Coinbase\Wallet\Client;
            use Coinbase\Wallet\Configuration;

            $apiKey = 'public';
            $apiSecret = 'private';
            $configuration = Configuration::apiKey($apiKey, $apiSecret);
            $client = Client::create($configuration);
            $spotPrice = $client->getSpotPrice();
            echo $spotPrice;

那么,我的使用陈述是在错误的地方吗?我已经在索引函数之外和类之外尝试过它们。两者都产生完全不同的结果集。

在Keks课程之外,我得到了

  

致命错误:Class' Coinbase \ Wallet \ Configuration'找不到   /home/content/61/11420661/html/beta/application/controllers/keks.php   在第15行

在类中,但在index()函数之外我得到了

  

致命错误:Trait&Coobase \ Wallet \ Client'在第4行的&home; /home/content/61/11420661/html/beta/application/controllers/keks.php中找不到

我的composer.json可能有问题吗?

完整控制器位于:http://pastebin.com/4BjPP6YR

4 个答案:

答案 0 :(得分:41)

您不能在使用它的地方使用“使用”。

“use”关键字位于类定义的前面,用于将其他类/接口/特性导入其自己的命名空间,或者它位于类内(但不在方法内)以向类中添加特征。 / p>

<?php
namespace Foo;

use Different\Class; // use can go here

class Bar {
  use TraitCode; // use can go here

  public function baz() {
    $this->traitFunction('etc');
    // use CANNOT go here
  }
}

答案 1 :(得分:7)

我尝试使用&#34;使用&#34;时使用codeigniter关键字在方法中抛出错误。

所以我把它移到了上面的类声明中。

<?php
  defined('BASEPATH') OR exit('No direct script access allowed');
  use Auth0\SDK\Auth0;

  class Home extends CI_Controller {

  }
?>

工作正常。

答案 2 :(得分:1)

你也可以 -

public function index() {
    ...
    $configuration = Coinbase\Wallet\Configuration::apiKey($apiKey, $apiSecret);
    $client = Coinbase\Wallet\Client::create($configuration);
    ...
}

如果你想在函数内部使用类而不是全局声明它。

答案 3 :(得分:0)

错误

“当前,我对于此代码的使用非常意外” 或

parse error: syntax error, unexpected 'use' (T_USE)

好吧,我发现了这样的问题,并想告诉你我正在使用 While 循环,我的意思是从数据库中调用数据,因此实际上,只要您看到任何“ T”,就意味着您正在重复相同的脚本,我在做同样的事情,什么时候把它放在while循环之外对我有用 这是我的第一篇文章 Jamal shah(来自巴基斯坦)