Swyddogaethau PHP JSON a Callback

P

Yn yr erthygl hon, byddwch yn dysgu am fformat JSON a'i swyddogaethau PHP sydd ar gael. Hefyd, byddwn yn edrych ar y swyddogaethau Callback yn PHP. Felly, gadewch i ni ddechrau.

Beth yw JSON?

Mae JSON yn sefyll am Nodiant Gwrthrych Javascript. Mae'n strwythur i gynrychioli'r data ar ffurf fwy darllenadwy. Mae JSON yn cael ei ddefnyddio ledled y byd gan bron pob iaith, felly mae'n chwarae rhan bwysig wrth wneud ceisiadau traws-blatfform a chael ymatebion.

Mae pob iaith yn gallu darllen JSON felly, mae'r rhan fwyaf o'r galwadau API yn cael eu defnyddio data mewnbwn JSON ac allbwn ymateb. Mae yna rai o swyddogaethau JSON adeiledig yn PHP.

  1. json_encode ()
  2. json_decode ()

json_amgodio yn cael ei ddefnyddio i amgodio neu drosi gwerth yn fformad JSON. Edrychwch ar yr enghraifft isod.

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

echo json_encode($age);
?>

json_datgodio yn cael ei ddefnyddio i drosi neu ddadgodio gwrthrych JSON yn arae cysylltiol (parau gwerth allweddol) neu werth PHP. Edrychwch ar yr enghraifft ganlynol.

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

var_dump(json_decode($jsonobj));
?>

Mae ail baramedr json_decode yn boolean. Os yw'n ffug, bydd yn dychwelyd gwrthrych. Os yw'n wir, bydd yn dychwelyd cyfres gysylltiadol. Mae'r enghraifft ganlynol yn defnyddio ail baramedr json_decode.

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

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

Sut i gael mynediad at werthoedd dychwelyd json_decode?

Fel y gwelwn uchod, mae json_decode yn dychwelyd gwrthrych yn ddiofyn ac arae gysylltiadol pan ddaw'r ail baramedr yn wir. Byddwn yn dangos enghreifftiau i chi i gael mynediad at werthoedd o bob un o'r allbynnau hyn.

Enghraifft 1 - json_decode yn dychwelyd gwrthrych

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

$obj = json_decode($jsonobj);

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

Enghraifft 2 - mae json_decode yn dychwelyd cyfres gysylltiadol

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

$arr = json_decode($jsonobj, true);

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

Sut i ddolen trwy'r arae json_decode?

Fel y gwyddom, mae json_decode yn dychwelyd cyfres gysylltiadol. Felly, gall dolen foreach gyrchu'r allweddi a'u gwerthoedd yn json_decode. Edrychwch ar yr enghraifft ganlynol lle rydyn ni'n ailadrodd dros ganlyniad json_decode.

enghraifft

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

$arr = json_decode($jsonobj, true);

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

Swyddogaethau galw yn ôl yn PHP

Gelwir swyddogaeth a basiwyd fel dadl i swyddogaeth arall yn swyddogaeth galw yn ôl. Gallwch chi ddiffinio'ch swyddogaeth galw yn ôl eich hun a'i throsglwyddo i swyddogaeth arall. Yn yr achos hwn, pasiwch enw'r swyddogaeth fel llinyn. Edrychwch ar yr enghraifft ganlynol o swyddogaeth galw yn ôl syml yn PHP.

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

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

Bellach gall PHP 7 ac 8 basio swyddogaeth anhysbys fel swyddogaeth galw yn ôl. Yn yr enghraifft ganlynol, byddwch yn dysgu sut i basio swyddogaeth anhysbys fel swyddogaeth galw yn ôl yn PHP.

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

Sut i ddefnyddio swyddogaeth a ddiffiniwyd gan y defnyddiwr fel swyddogaeth galw yn ôl?

Yn union fel swyddogaeth arferol, defnyddiwch newidynnau dadl yn eich swyddogaeth. Nawr, pasiwch y swyddogaeth hon fel swyddogaeth galw yn ôl.

enghraifft

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

Gan eich bod bellach yn gyfarwydd â fformat JSON, json_encode, json_decode, a swyddogaethau galw yn ôl yn PHP. Yn yr adran nesaf, byddwn yn dysgu am ddau gysyniad syml, ond hawdd iawn a phwysig o PHP.

Beth yw cynnwys allweddair yn PHP?

Mae cynnwys yr allweddair yn PHP yn caniatáu defnyddio ffeil allanol sydd â sgript PHP, yn y ffeil gyfredol. Mae'n ein harbed rhag ysgrifennu cod y ffeil dro ar ôl tro ym mhob man yr ydym am ddefnyddio ei god.

Heb ddefnyddio'r allweddair cynnwys, gall y cod fod yn flêr neu'n ddiangen. I ddatrys problem diswyddo, mae PHP yn darparu dau allweddair, eu cynnwys a'u mynnu. Yn rhesymegol, maen nhw'n gwneud yr un peth ond maen nhw'n wahanol i'w gilydd. Gadewch i ni fynd drwyddynt fesul un!

Beth yw'r gwahaniaeth rhwng cynnwys a gofyn yn PHP?

gynnwysei gwneud yn ofynnol
Cynhwyswch allweddair yn caniatáu defnyddio'r darn o god mewn rhywfaint o ffeil allanol, i'ch cod presennol. Ychwanegwch y ffeil ar frig y sgript PHP gan ddefnyddio'r allweddair cynnwys a gallwch gyrchu cod y ffeil honno yn eich cod cyfredol. Yma, y ​​peth pwysig yw, os nad yw'r ffeil rydych chi'n ei nodi yn yr allweddair cynnwys yn bodoli neu'n cynnwys unrhyw wall ynddo. Bydd yn cynhyrchu E_WARNING ond nid yw'n atal eich sgript.Ar y llaw arall, mae angen allweddair hefyd yn cael ei ddefnyddio i ychwanegu ffeiliau cod allanol i'r sgript PHP gyfredol. Ond ar unrhyw fath o fethiant yn y ffeil, neu yn achos ffeil goll, ei gwneud yn ofynnol i'r swyddogaeth gynhyrchu E_COMPILE_ERROR ac nid yw'n caniatáu i'r sgript weithredu. Bydd yn atal y broses.
PHP Cynnwys vs Angen

Pa un sy'n well ei ddefnyddio allan o gynnwys neu ofyn?

Mae'r dewis rhwng cynnwys a gofyn yn dibynnu ar yr achos defnydd neu'r senario.

Os ydych chi'n gweithio ar blatfform lle mai diogelwch uchel yw'r prif bryder. Yn yr achos hwn, rhaid i chi ddefnyddio'r allweddair gofynnol. Gan nad yw'r allweddair gofynnol yn caniatáu i'r sgript weithredu am unrhyw wall yn y ffeil sydd ynghlwm neu rhag ofn na cheir hyd i ffeil.

Os ydych chi am i'ch sgript beidio â stopio oherwydd y ffeil sydd wedi'i chynnwys, gallwch ddefnyddio'r swyddogaeth cynnwys yn yr achos hwn. Bydd yn eich cydnabod am y broblem gan ddefnyddio'r gwall E_WARNING.

Cystrawen cynnwys a gofyn

include 'filename';

or

require 'filename';

Enghraifft o Cynnwys allweddair yn PHP

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

Enghraifft o ofyn am allweddair yn PHP

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

Gallwch ddysgu dogfennaeth swyddogol am json_amgodio, json_datgodio, a PHP galw ar ôl swyddogaethau.

Ychwanegu sylw

Rhwydwaith Tiwtoriaid

Dysgwch PHP o A i Z