<?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'));
}
}