PHP JSON in funkcije povratnega klica

P

V tem članku boste izvedeli o formatu JSON in njegovih razpoložljivih funkcijah PHP. Ogledali si bomo tudi funkcije povratnega klica v PHP. Torej, začnimo.

Kaj je JSON?

JSON je kratica za Javascript Object Notation. Je struktura, ki predstavlja podatke v bolj berljivi obliki. JSON uporabljajo skoraj vsi jeziki po vsem svetu, zato igra pomembno vlogo pri oblikovanju zahtev med platformami in pridobivanju odgovorov.

Vsak jezik je sposoben brati JSON, zato se večina klicev API-ja uporablja za vhodne podatke JSON in izhod odgovorov. V PHP je nekaj vgrajenih funkcij JSON.

  1. json_encode()
  2. json_decode()

json_encode se uporablja za kodiranje ali pretvorbo vrednosti v format JSON. Poglejte si spodnji primer.

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);

echo json_encode($age);
?>

json_decode se uporablja za pretvorbo ali dekodiranje nazaj predmeta JSON v asociativno matriko (pari ključ-vrednost) ali vrednost PHP. Poglejte si naslednji primer.

<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

var_dump(json_decode($jsonobj));
?>

Drugi parameter json_decode je logičen. Če je nastavljen na false, vrne predmet. Če je nastavljen na true, vrne asociativno matriko. Naslednji primer uporablja drugi parameter json_decode.

<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

var_dump(json_decode($jsonobj, true));
?>

Kako dostopati do vrnjenih vrednosti json_decode?

Kot vidimo zgoraj, json_decode privzeto vrne objekt in asociativno matriko, ko drugi parameter postane resničen. Pokazali vam bomo primere za dostop do vrednosti iz vsakega od teh izhodov.

Primer 1 – json_decode vrne objekt

<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

$obj = json_decode($jsonobj);

echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>

Primer 2 – json_decode vrne asociativno matriko

<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

$arr = json_decode($jsonobj, true);

echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>

Kako zankati skozi matriko json_decode?

Kot vemo, json_decode vrne asociativno matriko. Torej lahko zanka foreach dostopa do ključev in njihovih vrednosti v json_decode. Oglejte si naslednji primer, v katerem ponavljamo rezultat json_decode.

Primer

<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

$arr = json_decode($jsonobj, true);

echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>

Funkcije povratnega klica v PHP

Funkcija, posredovana kot argument drugi funkciji, se imenuje funkcija povratnega klica. Lahko definirate svojo funkcijo povratnega klica in jo posredujete drugi funkciji. V tem primeru samo posredujte ime funkcije kot niz. Poglejte naslednji primer preproste funkcije povratnega klica v PHP.

<?php
function my_callback($item) {
  return strlen($item);
}

$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map("my_callback", $strings);
print_r($lengths);
?>

PHP 7 in 8 lahko zdaj posredujeta anonimno funkcijo kot funkcijo povratnega klica. V naslednjem primeru se boste naučili, kako posredovati anonimno funkcijo kot funkcijo povratnega klica v PHP.

<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>

Kako uporabiti uporabniško definirano funkcijo kot funkcijo povratnega klica?

Tako kot običajna funkcija, uporabite spremenljivke argumentov v svoji funkciji. Zdaj pa to funkcijo podajte kot funkcijo povratnega klica.

Primer

<?php
function exclaim($str) {
  return $str . "! ";
}

function ask($str) {
  return $str . "? ";
}

function printFormatted($str, $format) {
  // Calling the $format callback function
  echo $format($str);
}

// Pass "exclaim" and "ask" as callback functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>

Kot ste zdaj seznanjeni z obliko JSON, funkcijami json_encode, json_decode in povratnimi klici v PHP. V naslednjem razdelku bomo spoznali dva preprosta, a zelo enostavna in pomembna koncepta PHP.

Kaj je ključna beseda include v PHP?

Vključitev ključne besede v PHP omogoča uporabo zunanje datoteke s skriptom PHP v trenutni datoteki. Reši nas pred pisanjem kode datoteke vedno znova povsod, kjer želimo uporabiti njeno kodo.

Brez uporabe ključne besede vključi je lahko koda neurejena ali odveč. Za rešitev problema redundance PHP ponuja dve ključni besedi, include in require. Logično je, da delajo isto stvar, vendar se med seboj razlikujejo. Pojdimo skozi njih enega za drugim!

Kakšna je razlika med include in require v PHP?

vključujejozahteva
Vključi ključno besedo omogoča uporabo dela kode v neki zunanji datoteki v vašo obstoječo kodo. Samo dodajte datoteko na vrh skripta PHP s ključno besedo include in lahko dostopate do kode te datoteke v vaši trenutni kodi. Tukaj je pomembno, če datoteka, ki jo podate v ključni besedi include, ne obstaja ali vsebuje kakršno koli napako. Izkazalo bo E_WARNING, vendar ne ustavi vašega skripta.Po drugi strani se ključna beseda require uporablja tudi za dodajanje zunanjih kodnih datotek v trenutni skript PHP. Toda v primeru kakršne koli napake v datoteki ali v primeru manjkajoče datoteke zahtevajte, da funkcija proizvede E_COMPILE_ERROR in ne dovoli izvajanja skripta. To bo ustavilo postopek.
PHP Vključi in Zahtevaj

Kaj je bolje uporabiti iz vključiti ali zahtevati?

Izbira med vključiti in zahtevati je odvisna od primera uporabe ali scenarija.

Če delate na platformi, v kateri je glavna skrb visoka varnost. V tem primeru morate uporabiti zahtevano ključno besedo. Ker zahtevana ključna beseda ne dovoljuje izvajanja skripta zaradi kakršne koli napake v priloženi datoteki ali v primeru, da datoteke ni mogoče najti.

Če želite, da se vaš skript ne ustavi zaradi vključene datoteke, lahko v tem primeru uporabite funkcijo vključi. O težavi vas bo obvestil z napako E_WARNING.

Sintaksa vključevanja in zahteva

include 'filename';

or

require 'filename';

Primer ključne besede Vključi v PHP

<h1>Welcome to my home page!</h1>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>

Primer ključne besede require v PHP

<h1>Welcome to my home page!</h1>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>

Izvedete lahko uradno dokumentacijo o json_encode, json_decode, in PHP poklicati nazaj funkcije.

Dodaj komentar

Mreža mentorjev

Naučite se PHP od A do Ž