PHP JSON ak fonksyon Callback

P

Nan atik sa a, ou pral aprann sou fòma JSON ak fonksyon PHP ki disponib li yo. Epitou, nou pral gade nan fonksyon yo Callback nan PHP. Se konsa, ann kòmanse.

ki sa ki JSON?

JSON la vle di Javascript Object Notation. Li se yon estrikti ki reprezante done yo nan yon fòm ki pi lizib. JSON yo itilize nan tout mond lan pa prèske tout lang, kidonk li jwe yon wòl enpòtan nan fè demann kwa-platfòm ak jwenn repons.

Chak lang kapab li JSON se konsa, pi fò nan apèl API yo itilize done D' JSON ak pwodiksyon repons. Gen kèk fonksyon JSON entegre nan PHP.

  1. json_encode()
  2. json_decode()

json_encode yo itilize pou kode oswa konvèti yon valè nan fòma JSON. Gade egzanp ki anba a.

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

echo json_encode($age);
?>

json_decode yo itilize pou konvèti oswa dekode tounen objè JSON nan yon etalaj asosyasyon (pè kle-valè) oswa yon valè PHP. Gade egzanp sa a.

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

var_dump(json_decode($jsonobj));
?>

Dezyèm paramèt json_decode se yon boolean. Si li mete sou fo, li retounen yon objè. Si li se vre, li retounen yon etalaj asosyasyon. Egzanp sa a sèvi ak dezyèm paramèt json_decode.

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

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

Ki jan yo jwenn aksè nan valè yo retounen json_decode?

Kòm nou wè pi wo a ke json_decode retounen yon objè pa default ak yon etalaj asosyasyon lè dezyèm paramèt la vin vre. Nou pral montre w egzanp pou jwenn aksè nan valè nan chak nan rezilta sa yo.

Egzanp 1 - json_decode retounen objè

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

$obj = json_decode($jsonobj);

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

Egzanp 2 - json_decode retounen yon etalaj asosyasyon

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

$arr = json_decode($jsonobj, true);

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

Ki jan yo boukle nan etalaj la json_decode?

Kòm nou konnen, json_decode retounen yon etalaj asosyasyon. Se konsa, foreach bouk ka jwenn aksè tou de kle yo ak valè yo nan json_decode. Gade nan egzanp sa a kote nou repete sou rezilta json_decode.

Egzanp

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

$arr = json_decode($jsonobj, true);

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

Fonksyon callback nan PHP

Yon fonksyon pase kòm yon agiman nan yon lòt fonksyon yo rele yon fonksyon callback. Ou ka defini pwòp fonksyon callback ou epi pase li nan yon lòt fonksyon. Nan ka sa a, jis pase non an nan fonksyon an kòm yon fisèl. Gade nan egzanp sa a nan yon senp fonksyon callback nan 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 ak 8 kapab kounye a pase yon fonksyon anonim kòm yon fonksyon callback. Nan egzanp sa a, ou pral aprann ki jan yo pase yon fonksyon anonim kòm yon fonksyon callback nan PHP.

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

Ki jan yo sèvi ak fonksyon itilizatè-defini kòm fonksyon callback?

Menm jan ak yon fonksyon nòmal, sèvi ak varyab agiman nan fonksyon ou. Koulye a, pase fonksyon sa a kòm yon fonksyon callback.

Egzanp

<?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");
?>

Kòm ou abitye kounye a ak fòma JSON, json_encode, json_decode, ak fonksyon callback nan PHP. Nan pwochen seksyon an, nou pral aprann sou de konsèp PHP ki senp, men trè fasil e ki enpòtan.

Ki sa ki enkli mo kle nan PHP?

Mete mo kle a nan PHP pèmèt lè l sèvi avèk yon fichye ekstèn ki gen script PHP, nan dosye aktyèl la. Li sove nou soti nan ekri kòd la nan dosye a ankò e ankò tout kote nou vle sèvi ak kòd li yo.

San yo pa itilize mo kle enkli, kòd la ka sal oswa redondants. Pou rezoud pwoblèm nan nan èkse, PHP bay de mo kle, enkli ak mande. Lojikman, yo fè menm bagay la men yo diferan youn ak lòt. Ann ale nan yo youn pa youn!

Ki diferans ki genyen ant enkli ak mande nan PHP?

gen ladan yomande pou
Mete mo kle pèmèt yo sèvi ak moso nan kòd nan kèk dosye ekstèn, nan kòd ki deja egziste. Jis ajoute fichye a nan tèt script PHP a lè l sèvi avèk mo kle enkli epi ou ka jwenn aksè nan kòd fichye a nan kòd ou ye kounye a. Isit la, bagay ki enpòtan se, si fichye a ou presize nan mo kle enkli pa egziste oswa gen nenpòt erè ladan l. Li pral pwodwi E_WARNING men li pa sispann script ou a.Nan lòt men an, mande mo kle yo itilize tou pou ajoute dosye kòd ekstèn nan script PHP aktyèl la. Men, sou nenpòt kalite echèk nan dosye a, oswa nan ka a nan yon dosye ki manke, mande pou fonksyon an pwodwi E_COMPILE_ERROR epi yo pa pèmèt script la pou egzekite. Li pral sispann pwosesis la.
PHP enkli vs mande

Ki pi bon pou itilize pa enkli oswa mande?

Chwa ki genyen ant enkli ak mande depann sou ka itilize oswa senaryo a.

Si w ap travay sou yon platfòm kote sekirite segondè se enkyetid prensipal la. Nan ka sa a, ou dwe itilize mo kle ki nesesè yo. Kòm mo kle ki nesesè yo pa pèmèt script la egzekite pou nenpòt ki erè nan fichye a tache oswa nan ka ta gen dosye pa jwenn.

Si ou vle script ou a pa sispann akòz dosye a enkli, ou ka itilize fonksyon enkli nan ka sa a. Li pral rekonèt ou sou pwoblèm nan lè l sèvi avèk erè E_WARNING la.

Sentaks nan enkli ak mande

include 'filename';

or

require 'filename';

Egzanp enkli mo kle nan PHP

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

Egzanp mande mo kle nan PHP

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

Ou ka aprann dokiman ofisyèl sou json_encode, json_decode, ak PHP Rele anko fonksyon.

ajoute kòmantè

Rezo Tutor

Aprann PHP soti nan A rive nan Z