السلام عليكم -
هذا تعديل في الكود اللذي وضعة الاخ Nadorino.
سبب التعديل:
1- استخدام الخواص الجديدة التي اتت مع الاصدار PHP الخامس: الخاصية هو ان تستغل الدالة destruct__ التي تعمل اوتوماتيكيا عندما يتهي عمر البرنامج او الclass
2- لتقليل السطور المطلوبة لتشغيل الكود الى سطر واحد فقط
الملف: countTime.php
كود PHP:
<?php
class Turn
{
function Turn(){
$this->start = $this->addmilli();
}
function end(){
$result = round(($this->addmilli() - $this->start)*1000,8);
echo '<!-- Done in '.$result.' Seconds -->';
}
function addmilli(){
$temp = explode(' ',microtime());
return $temp[0] + $temp[1];
}
function __destruct(){
$this->end();
}
}
$timer = new Turn();
?>
الشرح:
عندما ينتهي البرنامج او يمسح الclass من الذاكرة .. سيحاول مترجم الPHP ان يبحث عن الدالة ()destruct__ اذا ماكانت موجودة في ذاك الكلاس .. اذا كانت موجودة .. المترجم سيحاول ان يشغلها..
كيف؟ ليش؟ ولماذا؟
في لغة ال++C يوجد لكل كلاس destructor وcustructor .. الcustructor هو الدالة التي تبدء في حين تشغيل الclass. والdestructor هو الدالة التي تعمل في حين اغلاق او مسح الclass من الذاكرة.. فمثلا عندنا ينتهي عمل البرنامج، الdestructor يحاول معرفة اذا كانت هناك اي تغيرات في الملف .. اذا كانت هناك تغيرات يسئل المستخدم اذا كان يريد ان يحفظ التغيرات .. وله استخدمات متعددة . ان شاء الله ساشرح ذالك في درس من الدروس
طريقة الاستخدام: فقط ضع الامر في بداية الملف
كود PHP:
include 'countTime.php';
وسيعمل اوتوماتيكيا