在Http::get()内部连接字符串



<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesHttp;
$baseUrl = "https://api.nomics.com/v1/currencies/ticker?key=";
$api = "df87f0731def2f83a8539a2735b4c31ee";

class ProjectController extends Controller
{
public function getData(Request $request){
$responce = Http::get("https://api.nomics.com/v1/currencies/ticker?key=df87f0731def2f83a8539a2735b4c31ee2b6f0b5&interval=1d,30d&convert=USD&per-page=100&page=1");
return view('index', ['responce' => $responce->json()]);
}
}
//curl "https://api.nomics.com/v1/currencies/ticker?key=df87f0731def2f83a8539a2735b4c31ee&interval=1d,30d&convert=USD&per-page=100&page=1"

我试图通过这样做来简化get函数中的字符串。

"{$baseUrl}{$api} . &interval=1d,30d&convert=USD&per-page=100&page=1"

$baseUrl . $api . "&interval=1d,30d&convert=USD&per-page=100&page=1"

它似乎不起作用。有这样做的建议吗?我刚开始学习PHP。非常感谢。

  • 您可以使用sprintf()格式化字符串
  • 您可以在PHP中自然地转义双引号,大括号只是为了提高可读性
  • 您可以使用.连接单引号和函数

PSB是每种用法的示例。

// Using format string functions
Http::get(sprintf('%s%s&interval=1d,30d&convert=USD&per-page=100&page=1', $baseUrl, $api));
// Escape - {} are not needed but increases readability
Http::get("{$baseUrl}{$api}&interval=1d,30d&convert=USD&per-page=100&page=1");
// Concatenate
Http::get($baseUrl . $url . '&interval=1d,30d&convert=USD&per-page=100&page=1');

您还应该记住项目的作用域,并正确地声明变量。

class ProjectController extends Controller
{
private string $baseUrl = 'https://api.nomics.com/v1/currencies/ticker?key=';
private string $api     = 'df87f0731def2f83a8539a2735b4c31ee';
public function getData(Request $request)
{
$response = Http::get(sprintf('%s%s&interval=1d,30d&convert=USD&per-page=100&page=1', $this->baseUrl, $this->api));
return view('index', compact('response'));
}
}

最新更新