Неожиданное использование (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 это сработало для меня Это моя первая публикация здесь Джамал шах (из ПАКИСТАНА)