PHP JSON ופונקציות Callback

SSL מהימן החל מ-$3.44 בלבד
פרסומות
מסנני PHP - אימות וניקוי
Regex ב-PHP

במאמר זה תלמדו על פורמט JSON ופונקציות ה-PHP הזמינות שלו. כמו כן, נבחן את פונקציות ה-Callback ב-PHP. אז הבה נתחיל.

מהו JSON?

JSON ראשי תיבות של Javascript Object Notation. זהו מבנה לייצג את הנתונים בצורה קריאה יותר. JSON נמצא בשימוש בכל העולם על ידי כמעט כל השפות, לכן הוא ממלא תפקיד חשוב בהגשת בקשות חוצות פלטפורמות וקבלת תגובות.

כל שפה מסוגלת לקרוא JSON ולכן רוב קריאות ה-API משמשות בנתוני קלט של JSON ובפלט תגובה. ישנן כמה פונקציות JSON מובנות ב-PHP.

  1. json_encode ()
  2. json_decode ()

json_encode משמש לקידוד או המרת ערך לפורמט JSON. תסתכל על הדוגמה למטה.

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

echo json_encode($age);
?>

json_decode משמש להמרה או פענוח חזרה של אובייקט JSON למערך אסוציאטיבי (צמדי מפתח-ערך) או ערך PHP. תסתכל על הדוגמה הבאה.

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

var_dump(json_decode($jsonobj));
?>

הפרמטר השני של json_decode הוא בוליאני. אם הוא מוגדר כ-false, הוא מחזיר אובייקט. אם הוא מוגדר כ-true, הוא מחזיר מערך אסוציאטיבי. הדוגמה הבאה עושה שימוש בפרמטר השני של json_decode.

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

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

כיצד לגשת לערכי ההחזרה של json_decode?

כפי שאנו רואים לעיל ש-json_decode מחזיר אובייקט כברירת מחדל ומערך אסוציאטיבי כאשר הפרמטר השני הופך להיות אמיתי. אנו נראה לך דוגמאות לגישה לערכים מכל אחת מהפלטים הללו.

דוגמה 1 - json_decode מחזיר אובייקט

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

$obj = json_decode($jsonobj);

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

דוגמה 2 - json_decode מחזיר מערך אסוציאטיבי

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

$arr = json_decode($jsonobj, true);

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

כיצד לבצע לולאה דרך מערך json_decode?

כידוע, json_decode מחזיר מערך אסוציאטיבי. אז, foreach loop יכול לגשת גם למפתחות וגם לערכיהם ב-json_decode. תסתכל על הדוגמה הבאה שבה אנו חוזרים על תוצאת json_decode.

דוגמא:

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

$arr = json_decode($jsonobj, true);

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

פונקציות התקשרות חוזרת ב-PHP

פונקציה המועברת כארגומנט לפונקציה אחרת נקראת פונקציית callback. אתה יכול להגדיר פונקציית התקשרות חוזרת משלך ולהעביר אותה לפונקציה אחרת. במקרה זה, פשוט העבירו את שם הפונקציה כמחרוזת. תסתכל על הדוגמה הבאה של פונקציית callback פשוטה ב-PHP.

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

$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map("my_callback", $strings);
print_r($lengths);
?>
SSL מהימן החל מ-$3.44 בלבד
פרסומות

PHP 7 ו-8 יכולים כעת להעביר פונקציה אנונימית כפונקציית התקשרות חוזרת. בדוגמה הבאה, תלמד כיצד להעביר פונקציה אנונימית כפונקציית התקשרות חוזרת ב-PHP.

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

כיצד להשתמש בפונקציה המוגדרת על ידי משתמש כפונקציית התקשרות חוזרת?

בדיוק כמו פונקציה רגילה, השתמש במשתני ארגומנט בפונקציה שלך. כעת, העבר את הפונקציה הזו כפונקציית התקשרות חוזרת.

דוגמא:

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

כפי שאתה מכיר כעת את פורמט JSON, פונקציות json_encode, json_decode ו-callback ב-PHP. בחלק הבא נלמד על שני מושגים פשוטים, אבל מאוד קלים וחשובים של PHP.

מהי מילת מפתח כלול ב-PHP?

כלול את מילת המפתח ב-PHP מאפשרת שימוש בקובץ חיצוני בעל סקריפט PHP, בקובץ הנוכחי. זה חוסך מאיתנו לכתוב את הקוד של הקובץ שוב ושוב בכל מקום בו נרצה להשתמש בקוד שלו.

ללא שימוש במילת המפתח include, הקוד יכול להיות מבולגן או מיותר. כדי לפתור את בעיית היתירות, PHP מספקת שתי מילות מפתח, כולל ודורש. באופן הגיוני, הם עושים את אותו הדבר אבל הם שונים זה מזה. בואו נעבור עליהם אחד אחד!

מה ההבדל בין כוללים לדרוש ב-PHP?

לכלוללדרוש
כלול מילת מפתח מאפשר להשתמש בקטע הקוד בקובץ חיצוני כלשהו, ​​לתוך הקוד הקיים שלך. פשוט הוסף את הקובץ בראש סקריפט PHP באמצעות מילת המפתח include ותוכל לגשת לקוד של הקובץ הזה בקוד הנוכחי שלך. כאן, הדבר החשוב הוא, אם הקובץ שאתה מציין במילת המפתח include אינו קיים או מכיל בתוכו שגיאה כלשהי. זה יפיק E_WARNING אבל לא עוצר את הסקריפט שלך.מצד שני, מילת מפתח דורשת משמשת גם להוספת קובצי קוד חיצוניים לסקריפט הנוכחי של PHP. אבל בכל סוג של כשל בקובץ, או במקרה של קובץ חסר, דורשים מהפונקציה לייצר E_COMPILE_ERROR ואינה מאפשרת לסקריפט להתבצע. זה יעצור את התהליך.
PHP Include לעומת Require

במה עדיף להשתמש מחוץ לכלול או לדרוש?

הבחירה בין כולל לדרוש תלויה במקרה או בתרחיש השימוש.

אם אתה עובד על פלטפורמה שבה אבטחה גבוהה היא הדאגה העיקרית. במקרה זה, עליך להשתמש במילת המפתח הנדרשת. מכיוון שמילת המפתח הנדרשת אינה מאפשרת להפעיל את הסקריפט עבור כל שגיאה בקובץ המצורף או במקרה של קובץ לא נמצא.

אם אתה רוצה שהסקריפט שלך לא יפסיק בגלל הקובץ הכלול, אתה יכול להשתמש בפונקציית include במקרה זה. זה יאשר לך לגבי הבעיה באמצעות השגיאה E_WARNING.

תחביר של כוללים ודרוש

include 'filename';

or

require 'filename';

דוגמא 1:

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

דוגמה 2.

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

למידע נוסף על נושא זה בתיעוד הרשמי אודות json_encode, json_decode, ו-PHP תתקשר בחזרה פונקציות.

מסנני PHP - אימות וניקוי
Regex ב-PHP
close

הישאר מעודכן לגבי PHP!

אנחנו לא שולחים ספאם!

SSL מהימן החל מ-$3.44 בלבד
פרסומות
en English
X
גלול למעלה