Неожиданное использование (T_USE) при попытке использовать composer

Итак, я пытаюсь использовать API Coinbase. Я пытаюсь выполнить простой тест, чтобы увидеть, смогу ли я заставить его работать, но я получаю различные ошибки композитора.

В настоящее время я получаю неожиданное использование этого кода:

            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;

Итак, мои заявления об использовании не в том месте? Я пробовал их вне функции индекса и вне класса. Оба дают совершенно разные наборы результатов, чем этот.

Вне класса Кекс я получаю

Неустранимая ошибка: класс 'Coinbase\Wallet\Configuration' не найден в /home/content/61/11420661/html/beta/application/controllers/keks.php в строке 15

И внутри класса, но вне функции index() я получаю

Неустранимая ошибка: черта 'Coinbase\Wallet\Client' не найдена в>/home/content/61/11420661/html/beta/application/controllers/keks.php в строке 4

Возможно, что-то не так в моем composer.json?

Полный контроллер находится здесь: http://pastebin.com/4BjPP6YR

4 ответа

Вы не можете использовать "использовать" там, где вы его используете.

Ключевое слово "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
  }
}

Я использую codeigniter, когда я пытаюсь использовать ключевое слово "use", которое вызывает ошибку в методе.

Так что я просто переместил его в объявление класса выше.

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

  class Home extends CI_Controller {

  }
?>

Работает нормально.

Вы также можете -

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

Если вы хотите использовать класс внутри функции, а не объявлять его глобально.

Ошибки

"В настоящее время я неожиданно начинаю использовать этот код" Или

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

Что ж, я обнаружил такую ​​проблему и хочу сказать вам, что я использовал цикл While, я имею в виду вызов данных из базы данных, поэтому на самом деле всякий раз, когда вы видите любую букву " T ", это означает, что вы повторяете тот же сценарий, поэтому я делал то же самое и когда его помещать вне цикла while это сработало для меня Это моя первая публикация здесь Джамал шах (из ПАКИСТАНА)

Другие вопросы по тегам