Concatenação de cadeias de caracteres dentro de Http::get()

0

Pergunta

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

$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"

Eu estou tentando simplificar a cadeia de caracteres dentro da função get fazendo.

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

ou

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

Ele parece não funcionar. Há uma recomendação de fazer isso ? Eu só comecei a aprender PHP. Obrigado.

php
2021-11-24 04:17:12
1

Melhor resposta

0
  • Você pode cadeias de caracteres de formato com sprintf().
  • Você pode escapar de aspas duplas, naturalmente, no PHP, as chaves de ajuda apenas para facilitar a leitura.
  • Você pode concatenar aspas simples e com funções .

PSB um exemplo de cada uso.

// 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');

Você também deve lembrar os escopos do seu projeto e declarar as variáveis corretamente.

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'));
    }
 }
2021-11-24 04:23:04

Oi, para a aprendizagem a propósito, você poderia me mostrar como definir estas variáveis globais e o acesso a partir da função ? de uma forma global ?
parapara


"$GLOBALS['baseUrl'] $GLOBALS['api'] &interval=1d,30d e converter=USD&por página=100&page=1" parece não funcionar....
parapara

A documentação indica simplesmente usar apenas global $baseUrl, $api dentro do escopo que você deseja usar variáveis. Vê-lo trabalhando aqui.
Jaquarh

Oh, eu tenho que graças. mas eu acho que não é uma boa maneira de usar neste caso.
parapara

Eu resolver o seu problema, em minha resposta usando propriedades de classe de que são declaradas dentro do escopo da classe, tornando-os acessíveis por meio de $this dentro da sua classe de funções. Você está indo completamente fora do OP assunto aqui.
Jaquarh

Eu vejo GLOBAIS na documentação, mas não global. eles são diferentes ?
parapara

Aceder a uma variável global dentro de uma função: A de formas para acessar a variável global dentro de funções: Usando a palavra-chave global Usando a matriz GLOBALS[var_name]: Ele armazena todas as variáveis globais em um array chamado $GLOBALS[var_name]. Var_name é o nome da variável. Esta matriz também é acessível a partir de dentro funções e pode ser usado para executar operações sobre variáveis globais diretamente. Este helpled
parapara

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................