دوال PHP غير معروفة ولكنها مفيدة

السلام عليكم

قدمت في المرات السابقة أكواداً خاصة بالاندرويد والجافا وسوف أقوم تباعاً بوضع بعض أكواد الـ PHP المفيدة في التدوينات القادمة. سوف أفوم بإضافة دوال او كلاسات خاصة بهذه اللغة وشرح بسيط بما تقوم بها لعلها تفيد المبرمجين عند برمجة المواقع أو المشاريع الخاصة.

في هذه التدوينة سوف تجود بعض الدوال الموجودة في لغة PHP وهي دوال افتراضية ولكنها لا تستعمل بكثرة من قبل المبرمجين ولذلك أصبحت غير معرفة بشكل كبير.

[heading size=”23″ margin=”20px”]1. highlight_string[/heading]

تقوم هذه الدالة بعرض كود الهتمل الذي يلون كود البي اتش بي. عندما تريد عرض كود PHP في موقع معين يمكنك استعمال هذه الدالة لعرض الكود ملوناً.

<?php
highlight_string('<?php phpinfo(); ?>');
?>

 [heading size=”23″ margin=”20px”]2. str_word_count:[/heading]

تقوم هذه الدالة بإرجاع عدد الكلمات في جملة او نص معين.

<?php
$str = "Count how many words I have?";
echo str_word_count($str); //Outputs 6
?>

المؤسف أن هذه الدالة لا تدعم الاحرف غير اللاتينية. ولذلك يمكن الاستعاضة عنها بهذا الكود.

<?php
$str = "السلام عليكم ورحمة الله";
echo count(preg_split('/\s+/', $str)); // النتيجة 4
?>

[heading size=”23″ margin=”20px”]3. get_defined_vars:[/heading]
تقوم هذه الدالة باسترجاع الدوال التي تم تعريفها من قبل المستخدم أو من قبل النظام وتضعها في مصفوفة.

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// print $b
print_r($arr["b"]);
?>

[heading size=”23″ margin=”20px”]4. get_defined_constants:[/heading]
هذه الدالة شبيهة بالسابقة حيث تقوم باسترجاع كافة المتغيرات الثابتة الموجودة في الكود سواء التي تم تعريفها من خلال النظام أو من خلال المبرمج.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

ونتيجة الكود السابق سوف تكون هذه:

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

[heading size=”23″ margin=”20px”]5. get_defined_functions:[/heading]
وهذه الدالة أيضا شبيهة بالدالتين السابقتين حيث أنها تقوم باسترجاع جميع الدوال المعرفة في مصفوفة.

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

وسوف تكون النتيجة:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

[heading size=”23″ margin=”20px”]6. func_get_args & func_get_arg & func_num_args[/heading]
تستعمل هذه الدوال لوضع عدد غير محدد من المتغيرات في الدالة. فعلى سبيل المثال تكون الدالة العادية هكذا:

<?php
// function with 2 optional arguments
function foo($arg1 = '', $arg2 = '') {
 
    echo "arg1: $arg1\n";
    echo "arg2: $arg2\n";
}
?>

حيث أنها تتطلب متغيرين فقط ولا يمكن عند استدعاء الدالة تغيير هذا الأمر. أما مع الدوال الثلاثة المذكورة يمكن القيام بهذا:

<?php
// yes, the argument list can be empty
function foo() {
 
    // returns an array of all passed arguments
    $args = func_get_args();
 
    foreach ($args as $k => $v) {
        echo "arg".($k+1).": $v\n";
    }
 
}?>

وبهذا يمكن وضع عدد لا محدود من المتغيرات في الدالة الواحدة وعند استدعاء الدالة يمكن التحكم بالمتغيرات التي تم وضعها.

[heading size=”23″ margin=”20px”]7. __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__:[/heading]
لغة الPHP تعتمد متغيرات ثابتة. ومن بعض هذه المتغيرات الثابتة هناك متغيرات “سحرية”.
هذه المتغيرات تساعد المبرمج على اختصار الوقت لايجاد بعض الامور. وهذا شرح المتغيرات السحرية:

<?php
// تقوم باسترجاع رقم السطر
__LINE__ 
// يقوم هذا المتغير باسترجاع اسم الملف الذي يحتوي الكود
__FILE__ 
// يقوم هذا المتغير باسترجاع الدالة التي وضع داخلها
__FUNCTION__
// يقوم هذا المتغير باسترجاع الكلاس الذي وضع داخله
__CLASS__
// يقوم هذا المتغير باسترجاع المجلد الذي وضع داخله
__DIR__
?>

[heading size=”23″ margin=”20px”]8. sleep:[/heading]
تقوم هذه الدالة بتأخير تشغيل الكود بعدد الثواني المطلوبة.

<?php
// الوقت الحالي
echo date('h:i:s') . "\n";

// نم لعشرة ثواني
sleep(10);

// استيقظ
echo date('h:i:s') . "\n";
?>

يمكن ايضاً استعمال دالة usleep لوضع الوقت بالملي ثانية بدلاً من الثانية.
اتمنى ان تعجبكم هذا التدونية وان شاء الله سوف أقوم بوضع المزيد في التدوينات اللاحقة.

أضف تعليقاً

الحقول المطلوبة موسومة بالعلامة *.