وظائف PHP
القوة الحقيقية لـ PHP تأتي من وظائفها.
تحتوي PHP على أكثر من 1000 وظيفة مدمجة ، بالإضافة إلى أنه يمكنك إنشاء وظائف مخصصة خاصة بك.
وظائف PHP المدمجة
تحتوي PHP على أكثر من 1000 وظيفة مدمجة يمكن استدعاؤها مباشرة ، من داخل البرنامج النصي ، لأداء مهمة محددة.
يرجى مراجعة مرجع PHP الخاص بنا للحصول على نظرة عامة كاملة على وظائف PHP المدمجة .
وظائف محددة بواسطة المستخدم PHP
إلى جانب وظائف PHP المدمجة ، من الممكن إنشاء الوظائف الخاصة بك.
- الوظيفة عبارة عن كتلة من العبارات التي يمكن استخدامها بشكل متكرر في البرنامج.
- لن يتم تنفيذ الوظيفة تلقائيًا عند تحميل الصفحة.
- سيتم تنفيذ الوظيفة عن طريق استدعاء الوظيفة.
إنشاء وظيفة معرّفة من قبل المستخدم في PHP
يبدأ إعلان الوظيفة المعرفة من قبل المستخدم بالكلمة function
:
بناء الجملة
function functionName()
{
code to be executed;
}
ملاحظة: يجب أن يبدأ اسم الوظيفة بحرف أو شرطة سفلية. أسماء الوظائف ليست حساسة لحالة الأحرف.
نصيحة: امنح الوظيفة اسمًا يعكس وظيفة الوظيفة!
في المثال أدناه ، نقوم بإنشاء وظيفة باسم "writeMsg ()". يشير قوس الفتح المتعرج ({) إلى بداية رمز الوظيفة ، ويشير قوس الإغلاق المتعرج (}) إلى نهاية الوظيفة. تقوم الوظيفة بإخراج "Hello world!". لاستدعاء الوظيفة ، ما عليك سوى كتابة اسمها متبوعًا بأقواس ():
مثال
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
وسيطات دالة PHP
يمكن تمرير المعلومات إلى الوظائف من خلال الوسائط. الحجة هي مجرد متغير.
يتم تحديد الوسيطات بعد اسم الوظيفة ، داخل الأقواس. يمكنك إضافة العديد من الوسائط كما تريد ، فقط افصل بينها بفاصلة.
يحتوي المثال التالي على دالة ذات وسيطة واحدة ($ fname). عندما يتم استدعاء وظيفة familyName () ، فإننا نمرر أيضًا اسمًا (مثل Jani) ، ويتم استخدام الاسم داخل الوظيفة ، والتي تنتج عدة أسماء أولية مختلفة ، ولكن اسم عائلة متساوٍ:
مثال
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
يحتوي المثال التالي على دالة ذات وسيطتين ($ fname و $ year):
مثال
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
PHP هي لغة مكتوبة بشكل فضفاض
في المثال أعلاه ، لاحظ أنه ليس علينا إخبار PHP بنوع البيانات المتغير.
تقوم PHP تلقائيًا بربط نوع بيانات بالمتغير ، اعتمادًا على قيمته. نظرًا لأن أنواع البيانات لم يتم تعيينها بالمعنى الدقيق للكلمة ، يمكنك القيام بأشياء مثل إضافة سلسلة إلى عدد صحيح دون التسبب في خطأ.
في PHP 7 ، تمت إضافة تعريفات النوع. يمنحنا هذا خيارًا لتحديد نوع البيانات المتوقع عند التصريح عن وظيفة ، وبإضافة strict
الإعلان ، سيؤدي ذلك إلى ظهور "خطأ فادح" إذا كان نوع البيانات غير متطابق.
في المثال التالي نحاول إرسال رقم وسلسلة إلى الدالة دون استخدام strict
:
مثال
<?php
function addNumbers(int $a, int $b) {
return $a
+ $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>
لتحديد strict
نحن بحاجة لضبط declare(strict_types=1);
. يجب أن يكون هذا في السطر الأول من ملف PHP.
في المثال التالي ، نحاول إرسال رقم وسلسلة إلى الوظيفة ، لكننا أضفنا هنا strict
الإعلان:
مثال
<?php declare(strict_types=1); // strict requirement
function
addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>
يفرض الإعلان استخدام strict
الأشياء بالطريقة المقصودة.
قيمة وسيطة PHP الافتراضية
يوضح المثال التالي كيفية استخدام معلمة افتراضية. إذا استدعينا الدالة setHeight () بدون وسيطات ، فستأخذ القيمة الافتراضية كوسيطة:
مثال
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
وظائف PHP - إرجاع القيم
للسماح للدالة بإرجاع قيمة ، استخدم return
العبارة:
مثال
<?php declare(strict_types=1); // strict requirement
function sum(int $x,
int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
إقرارات نوع إرجاع PHP
يدعم PHP 7 أيضًا تصاريح النوع return
للبيان. كما هو الحال مع إعلان النوع لوسائط الوظيفة ، من خلال تمكين المتطلبات الصارمة ، سيؤدي ذلك إلى إلقاء "خطأ فادح" على عدم تطابق النوع.
للإعلان عن نوع لإرجاع الدالة ، أضف نقطتين (
:
) والنوع مباشرة قبل {
قوس الفتح المتعرج () عند إعلان الوظيفة.
في المثال التالي نحدد نوع الإرجاع للوظيفة:
مثال
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
يمكنك تحديد نوع إرجاع مختلف عن أنواع الوسيطات ، ولكن تأكد من أن العائد هو النوع الصحيح:
مثال
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
تمرير الحجج عن طريق الإحالة
في PHP ، عادةً ما يتم تمرير الوسيطات بالقيمة ، مما يعني أنه يتم استخدام نسخة من القيمة في الدالة ولا يمكن تغيير المتغير الذي تم تمريره إلى الدالة.
عندما يتم تمرير وسيطة دالة عن طريق المرجع ، فإن التغييرات في الوسيطة تغير أيضًا المتغير الذي تم تمريره. لتحويل وسيطة دالة إلى مرجع ، &
يتم استخدام عامل التشغيل:
مثال
استخدم وسيطة تمرير المرجع لتحديث متغير:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>