تعلمنا حتى الأن :
ماهو الكائن وماهي أهميته و ماهي أركانه وكيف نكتبه !
ماهي الخصائص و الأساليب
كيف نعرّف الكائن أو كيف نشغل الكائن
الأن سنتعلم عن الجزء this وهي دالة معرفة تكتب بالشكل $this
ماهي وظيفة this ??
وظيفة الدالة this هي أنها توضع ضمن الكائن لتنفيذ أمر موجود ضمن الكائن نفسه مثال :
CODE
<?
function Ahmad()
{
echo " أنا اسمي أحمد";
}
Class Power{
function Ahmad()
{
echo " أنا اسمي مالك";
}
function DoAhmad()
{
Ahmad();
}
}
$Power = new Power;
$Power->DoAhmad();
?>
في المثال السابق لدينا دالتين كلاهما لهما الاسم Ahmad احداهما خارج الكائن وهي العبارة القائلة
(أنا اسمي أحمد ) والأخرى داخل الكائن واسمها (انا اسمي مالك )
طيب يوجد ضمن الكلاس أو الكائن دالة أخرى وهي DoAhmad وظيفتها هي طبع الدالة Ahmad
وهنا يأتي السؤال ؟؟؟ أي دالة Ahmad ستقوم بطبعها ؟؟ الدالة الواقعة ضمن الكلاس
أما التي تقع خارجه ؟؟؟
الجواب : ستقوم بطباعة الدالة التي تقع خارج الكلاس أي سيظهر على المتصفح (أنا اسمي أحمد )
ذلك لأننا كتبنا الدالة بهذا الشكل ضمن DoAhmad كتبنا :
Ahmad();
لذا تلقائيا سيتم تنفيذ الدالة الخارجية
طيب واذا اردت طباعة الدالة الموجودة داخل الكلاس ؟؟
خذ هذا المثال وقارن بينه وبين السابق :
CODE
<?
function Ahmad()
{
echo " أنا اسمي أحمد ";
}
Class Power{
function Ahmad()
{
echo " أنا اسمي مالك ";
}
function DoAhmad()
{
$this->Ahmad();
}
}
$Power = new Power;
$Power->DoAhmad();
?>
ستلاحظ الأن بأنه سيظهر على المتصفح (أنا اسمي مالك ) لماذا ؟؟
لأنني استخدمت $This ضمن الدالة DoAhmad فكتبت ضمنها :
CODE
$this->Ahmad();
اذا بالتلخيص :
this وضيفتها تنفيذ دالة موجودة الكائن ....
أي سؤال أنا جاهز