php الدّوال

php الدّوال الجاهزة

آخر تحيين: 13-12-2015

php إنشاء الدوال php الحلقات


الدالة (function) هي مجموعة من تعليمات موجهة تقوم بعمليات ثم تعطينا النتيجة . توفر لغة php الكثير من الدّوال ، إذ لا يمكننا حصرها هنا . سأقتصر على تقديم البعض منها فقط ، على سبيل الإستئناس ، حتى تتمكنوا من معرفة طريقة استعمالها . و من ثمّ يمكنم لاحقا ، الرجوع دائما إلى المرجع الأصلي لPHP حيث ستجدون جميع الدّوال المتوفرة .
لاستعمال دالة من دوال php الجاهزة ، نقوم باستدعاءها و ذلك بكتابة اسمها ، ثم بين قوسين ، نضيف القيم التي ستعمل عليها .

مثال عام لاستدعاء الدّوال :
dalla(القيمة);

يمكننا إعطاء الدالة أكثر من قيمة حسب حاجتنا :
dalla(القيمة2 , القيمة1 ,...);

كما يمكننا إعطاءها لا شيء ، أي أن الدالة لا تحتاج إلى قيم لآداء مهمتها
dalla();


الدوال التي سنتعرف عليها في هذا الدرس :

بعض الدّوال الجبرية (الرياضيات)

sqrt : جذر مربّع العدد

لمعرفة جذر مربع (square root) عدد ما . نستدعي الدّالة sqrt() ، وفي القيمة نعطيها العدد الذي ستقوم بالعمل عليه
مثال :

<?php
$a = sqrt(16); 
$b = sqrt(25);
echo 'جذر مربع 16 هو : '.$a.'<br>'; // النتيجة هي 4
echo ' جذر مربع 25 هو : '.$b;       // النتيجة هي 5
?>

لاحظتم بأن الدالة تعمل كآلة مبرمجة ، بمجرد استدعاءها و إعطاءها القيمة . تقوم بعملياتها ، و تعطينا النتيجة . رغم أن تفاصيل هذه العمليات نجهلها نحن كمستخدمين مبتدئين . إلا أننا استعطنا الإستفادة من الدالة .
يمكننا إعطاء الدالة متغيرا كقيمة ، لاحظوا أن الشيفرة أعلى يمكننا كتابتها بالطريقة أسفله ، و ستعطينا نفس النتيجة

<?php
$a = 16;
$a = sqrt($a);
echo 'جذر مربع 16 هو : '.$a ;
?>

round: القيمة الإجمالية للعدد

تقوم الدالة round() بحذف الأرقام بعد النقطة إذا كان العدد عُشريا .
إما بزيادة واحد للعدد الحقيقي إذا كان الرقم بعد النقطة أكبر من 5
أو بحذف الأرقام بعد النقطة و ترك العدد الحقيقي ، إذا كان الرقم بعد الفاصلة أدنى من 5 . مثال :

<?php
$a = round(12.56);
$b = round(12.33); 
echo 'a = '.$a.'<br>' ; // النتيجة هي 13
echo 'b = '.$b ;        // النتيجة هي 12
?>

ceil

الدالة ceil() ، شبيهة بالدالة round . إلا أنها تضيف دائما رقما واحدا إلى العدد الحقيقي ، إذا كان العدد إيجابيا ، مهما كان صغر الرقم المتواجد بعد النقطة . أما إذا كان العدد سلبيا ، فتقوم بحذف الأرقام بعد النقطة . مثال :

<?php 
 echo ceil(8.1834632);  // النتيجة هي 9

 echo ceil(8.00000001); //النتيجة هي 9

 echo ceil(-8.1834632); //-النتيجة هي 8
?>

كما قلت سابقا ، هذه أمثلة فقط عن طريقة استدعاء الدّوال ، و يجب أن تتذكروها . و بعدها يمكنكم استخدام أي دالة أخرى و هي كثيرة بحيث توجد دالة لكل عملية تمرّ بمخيلتكم .
رأينا بعض دوال الجبر ، و سنتعرف على بعض دوال النص (string functions) .

أهم الدوال النصية : php string functions

يتوفر php على عدد لا يستهان به من الدّوال للتحكم و إجراء العمليات التي تريدونها على نصكم .
string أو النص نعني به برمجيا ، كل مكونات المحتوى : من حروف و أرقام و حركات ، حتى الفراغات الموجودة بين أو قبل أو بعد كل مكون ، تعتبر جزءا من النص . مثلا :
" hello world ! " : هذا نص يتكون من علامة تعجب "!" و 4 فراغات و 10 أحرف . إذا أردنا أن نعرف عدد مكوّنات هذا النص نقوم بجمع المعطيات السابقة (1 + 4 + 10 ) و سنحصل على عدد 15 . قمنا بالحصول على هذا العدد بالعد اليدوي .
ماذا لو كان نصنا يحتوي المئات من المكونات ؟ و لغرض ما أردنا أن نعرف عددها الحقيقي ! ؟ هل سنقوم بعدها يدويا كما فعلنا سابقا
كما قلت لكم فلغة php توفر لكم كل ما تحتاجون من الدوال لإجراء العمليات التي تريدونها على النص . و عملية العد من بينها لذلك سنستعمل دالة تقوم بهذا العمل الشاق . و هي الدالة strlen() . و تعتبر من الدوال الأكثر استعمالا .

strlen : تعداد مكونات النص

كما ذكرت تقوم الدالة strlen بعدّ كل مكوّنات النص بما في ذلك الفراغات . و تعطينا رقميا طول النص . و سنحتاجها كثيرا لاحقا أمّا الآن ، تذكّروا فقط طريقة استعمالها . و هذا مثال على ذلك : سنستعمل نفس النص السابق

<?php
$a = " hello world ! ";
$a = strlen($a);
echo $a;           // النتيجة هي 15
?>

trim : حذف الفراغات الموجودة في بداية و نهاية النص

تقوم الدالة trim() بحذف جميع الفراغات الموجودة في بداية و نهاية النص مثال :

<?php
$a = " hello world ! "; // عدد المكونات هو 15
$a = trim($a);         // حذف الفراغات في بداية و نهاية النص
echo strlen($a);      // عدد المكونات أصبح 13 
?>

mb_substr , mb_strcut

الدالتان تؤديان الوظيفة نفسها : و هي قص النص و أخذ جزء منه ، الفرق الوحيد بينهما :

  • mb_substr() : تقوم بالتقطيع اعتمادا على مكونات النص
  • mb_strcut() : تقوم بالتقطيع اعتمادا على الأوكتات (octets) . بحيث إذا كان يجب تقطيع النص وسط أحد المكونات المُكوّنة من تسلسل عدد معين من الأوكتات ، سيتم تقطيع النص قبل أول أوكتات للمكوُن . بخلاف mb_substr() التي يمكنها تقطيع النص وسط التسلسل مما ينجم عن تشكيل تسلسل غير منسجم من الأوكتات .
mb_strcut($content, $start, $end, $encoding);
mb_substr($content, $start, $end, $encoding);
$content: النّص .
$start : بداية العد .
$end : نهاية العد .
$encoding : التّرميز .

مثال الإستعمال :

$content = "سنقوم بتقطيع هذا النص ، و أخذ العدد الذي نريده من الحروف ";
echo '
<p>
    mb_strcut = '.mb_strcut($content, 0, 30,"UTF-8").' <br>
    mb_substr = '.mb_substr($content, 0, 30,"UTF-8").'
</p>';
النّتيجة :
mb_strcut = سنقوم بتقطيع هذا
mb_substr = سنقوم بتقطيع هذا النص ، و أخذ

str_replace : إيجاد جزء من النص و استبداله

تقوم الدالة str_replace() بالبحث في النص عن الجزء المعني من المحتوى ثم يتم استبداله .
لحد الآن رأينا دوالّا بقيمة واحدة فقط . أما في حالتنا ف str_replace تأخذ ثلاث قيم و هي بالترتيب:
ـ النص الذي نود استبداله
ـ ثم يليه النص الذي سيحل مكانه
ـ ثم أخيرا نصنا بأكمله
مثال :

<?php
$b = str_replace('p','b','poom poooom');
echo $b; //  boom boooom : النتيجة
?>

قامت الدالة بالبحث عن جميع حروف p ثم تم استبدالها بحروف b . مثال آخر :

<?php
$a = ' كان القطّ أسوداً ، قبل الحريق ';
$b = str_replace(' أسوداً ',' أبيضا ', $a);
echo $b; // النتيجة : كان القطّ أبيضا ، قبل الحريق
?>

دالة الوقت : date

لتحديد الوقت ، توجد دوال عدّة مثل time(), mktime()... تستخدمها الدالة date() لتحديد طريقة عرض الوقت . لن أخوض الآن في التفاصيل ، و أثقل كاهلكم . سنرى لاحقا كل ما يتعلق بهذه الدوال في الفصل المتعلق بقاعدة البيانات . أما الآن سنكتفي بعرض الوقت الحالي فقط .
لعرض الوقت ، نعطي للدالة date مجموعة من القيم و أبرزها كالتالي :

القيمةالمعنىالشرح
YYearالسنة
mmonthالشهر
ddayاليوم
Hhourالساعة
iminuteالدقيقة

يمكننا استعمال قيمة أو أكثر من هذه القيم . مثلا لمعرفة السنة الحالية : نُعطي الدّالة date القيمة "Y" ، مثال :

<?php
$assana = date('Y');
echo $assana;
?>

لمعرفة السنة و الشهر و اليوم :

<?php
$tari5= date('Y-m-d');
echo 'تاريخ : '.$tari5;
?>

هذا كل شيء حاليا ، و ننتقل إلى درس مهم يتعلق بكيفية إنشاء دوالنا الخاصة