尝试使用作曲家时意外的“使用”(T_USE)

2022-08-30 14:07:05

所以,我正在尝试使用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课程之外,我得到

致命错误:类“Coinbase\Wallet\Configuration”在第 15 行的 /home/content/61/11420661/html/beta/application/controllers/keks.php

在类内部,但在 index() 函数之外,我得到

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

我的 composer.json 中是否有问题?

完整的控制器在这里:http://pastebin.com/4BjPP6YR


答案 1

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

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

<?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
  }
}

答案 2

当我尝试使用“use”关键字时,我正在使用CodeIgniter,它会在方法中抛出错误。

我只是把它移到了类声明的上方。

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

  }
?>

它工作正常。


推荐