ما شاء الله تبارك الله ما شاء الله لا قوة إلا بالله , اللهم إني أسالك الهدى والتقى والعفاف والغنى
منتدى المهندس كوم كلية الهندسة
فيديو المهندس - صور المهندس - برامج المهندس - مدونة المهندس
 

||  أجعلنا الصفحة الرئيسية  ||  أضفنا للمفضلة ||


العودة   منتدى المهندس كوم كلية الهندسة > منتدى الكمبيوتر والتكنولوجيا > منتدى البرمجة

منتدى البرمجة فيجوال بيسيك ، فيجوال سي ++ ، دلفي ، أكسيس ، أوراكل C, C++, C#, VB, VB.Net, .. etc

السادة الاعضاء الكرام حدث فقد فى المرفقات وذلك عند النقل الى سرفر جديد ولم نستطيع استرجاع كل المرفقات فارجوا من السادة الاعضاء اعادةرفع المرفقات مره اخرى ونعتزر للجميع عن هذا الخطاء
إضافة رد
 
LinkBack أدوات الموضوع
قديم 08-02-2011, 04:56   #1
مهندس مجتهد
 
تاريخ التسجيل: 06 2009
المشاركات: 585
شكراً: 0
تم شكره 5 مرة في 5 مشاركة
zarzor is on a distinguished road
افتراضي الأســـــاســـيات الهامه فى php classes 


الأســـــاســـيات الهامه classes


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

طبعا الدروس هذه المره سيتم طرحها بشكل مختلف تماما عن الدروس السابقة , لان الخريطة بمجرد تنتهى تماما ان شاء الله , سوف تكون لك قدرة برمجية فائقه بأذن الله وعن ثقه . ولفكرة ستكمن فى طريقة العرض
للخريطه التى سأشرح فكرتها بأذن الله فى موضوع منفصل.

فى هذا الدرس سوف نتعرف على واحد من الاشياء المهمه فى الphp, وهى الكلاسات classes
نظرا لقلة الدروس المتعلقة بها, سوف يكون لها حظ وفير جدا فى موقعنا, بحيث نتقن التعامل معها بشكل جيد

ونبدأ بأول درس فى php classes وهو الأساسيات :



أولا: صوره للفهرس الخاص بالدرس والذى سنقوم بشرحه خطوه خطوه بأذن الله:


الأســـــاســـيات الهامه classes

نبدأ على بركة الله ..........


اولا: class:

تعريف الكلاس class: هى عبارة عن مجموعة من المتغيرات $ والfunctions , يتم استخدامها سويا, بحيث
ينتج لنا ما يسمى الكلاس, والتى توفر الكثير من الوقت, فهناك كلاسات جاهزه يستخدمها الكثير من المبرمجين فى برمجياتهم , فمبجرد معرفتهم بأساسيات استخدامها, وهذا ما سنشرحه, يمكنك أن تستخدم اى كلاس تريدها, وحتى ولو لم تكن مبرمج محترف وقادر على كتابة اى كلاس , فهى ستعطى لك دفعه برمجية قويه فى برمجياتك اذا كانت قدراتك محدوده فى البرمجه

مثال: مثلا يوجد كلاس اسمها كلاس قواعد البيانات , وكودها موجود هــنـــا , وهى عبارة عن كلاس
يتم استخدامها للتعامل مع قواعد البيانات , من اتصال وجلب وادراج وحذف وادخال بيانات.......الخ

تخيل انك بمعرفه بسيطه بأساسيات الكلاسات, ستتمكن استخدام هذا الملف الذى قد يكون معقد بالنسبة لك بكل سهولة, وهذا ما سيثبته درسنا ان شاء الله , والدروس القادمه بأذن الله




الصيغة العامه للاستخدام :


رمز Code:
class classname {
$.......
function........

}


مثال عملى: نفرض انى أريد عمل كلاس تستخدم لكتابة اسمى :
سيكون الكود كالاتى:


رمز Code:
<?php
class myname {

function myname(){

echo "my name is mohamed amin\n";
echo "<br>";
}
}

?>



الان , سوينا هذه الكلاس البسيطة جدا, لكن نريد ان نعرف كيف سنستخدمها حتى نظهر الجملة
my name is mohamed amin


حتى نقوم بذلك لابد ان نقوم بخطوتين:

1-عمل متغير وتحديد هذا الكلاس لاستخدامها باستخدام الكلمة new
2-الدخول لاى function او متغير$ داخل الكلاس لاستخدامه باستخدام علامة الدخول ->


سنقوم بعمل الخطوه الاولى:

نسمى اى متغير ونكتب الكلمة new + اسم الكلاس السابق

رمز Code:
$use=new myname;

الحين قمنا بعمل متغير وحددنا الكلاسmyname لاستخدامها



نقوم الان بعمل الخطوه الثانيه :

نكتب نفس اسم المتغير اللى مستخدم الكلاس+ ندخل للفانكشن myname باستخدام ->

رمز Code:
$use->myname();

الان لو كتبنا الكود كامل : الكلاس +new + ->


رمز Code:
class myname {

function myname(){

echo "my name is mohamed amin\n";
echo "<br>";
}
}

$use=new myname;
$use->myname();

?>


لو استدعيت الملف فى المتصفح, ستجد الجمله راح تظهر لك my name is mohamed amin


حتى نهضم هذه الجزئيه , نأخذ أكثر من مثال عملى .......

مثال عملى 1:

رمز Code:
<?php

class personal {

public $site="www.advphp.com";

function fullname(){

echo " my private site is {$this->site} ";
}

}

$usepersonal= new personal ;
$usepersonal->fullname();

?>


الناتج:

رمز Code:
my private site is www.advphp.com

استفدنا من المثال السابق, انه فى حال أردت الدخول لاى متغير او فانكشن يمكنك استخدام الجملة

رمز Code:
$this->var
حيث var هى اسم المتغير المراد الدخول له, ولاحظ اننا لن نكتب العلامة $ قبل اسم المتغير



مثال عملى 2 :

رمز Code:
<?php

class simplemath {

public $num=18;

function math(){
$num2= 2;
$sum = $this->num + $num2;
echo " the sum of $this->num and $num2 is $sum ";
}

}

$usepersonal= new simplemath ;
$usepersonal->math();

?>


الناتج:


رمز Code:
the sum of 18 and 2 is 20



ثانيا: extends

الextends بكل اختصار هى تكملة او اضافة ممكن تضيفها لاى كلاس, تخيل انك كاتب كلاس كبيره جدا ومعقده, ونفرض انك تود ان تضيف لها بعض السطور البرمجية بدون الدخول فيها, لذلك سنقوم بعمل كلاس جديده امتدادا للكلاس الاصلية بحيث تشمل هذه الكلاس الممتده الكلاس الاصلية بكافة أوامرها+الكلاس الجديد بكافة أوامرها......


الصيغه العامه للاستخدام:

رمز Code:
class classname2 extends classname1 {
$........
function..........
}



مثال عملى:

لو خذنا الكلاس السابقة والتى كودها هو :

رمز Code:
class myname {

function myname(){

echo "my name is mohamed amin\n";
echo "<br>";
}
}

$use=new myname;
$use->myname();


نريد ان نضيف للكلاس السابق كلاس ممتد لها ليظهر اسمى المستعار الثانى

لذلك سيكون الكود كالاتى:


رمز Code:
class secondname extends myname{

function displaysecond(){

echo "second name is vista-design";
}
}

$useextend= new secondname();
$useextend->displaysecond();



الناتج لهذه الكلاس سو ف يكون كالاتى:


رمز Code:
my name is mohamed amin
second name is vista-design

شوفت الناتج: يشمل الكلاس الاصلية +الكلاس الممتده ........


الأســـــاســـيات الهامه classes




ثالثا: constructors :

ال constructors , او المشيد , هى اول function يتم كتابتها فى الكلاس, والتى يتم استدعاءها تلقائيا بدون استدعاءها وتنفيذها بمجرد استخدام الكلاس ......

الصيغة العامة:

رمز Code:
class classname {

function __construct() {

}

}


الحين حتى نثبت انه يتم استدعاءها تلقائيا بدون ان ندخل -> للfunction , سنقوم بعمل كلاس بسيطه وسنقوم بعمل متغير جديد لاستخدام هذه الكلاس فقط, ونشوف الناتج...


رمز Code:
class useconstructor{

function __construct(){
echo "<br>";
echo "this is the constructor function";
}
}

$useconstructor= new useconstructor();


الناتج:


رمز Code:
this is the constructor function

الأســـــاســـيات الهامه classes


لاحظ اننا لم نستخدم عبارة الدخول للfunction كالاتى:

رمز Code:
$useconstructor->construct();
لان هذه الفانكشن يتم استدعاءها بمجرد عمل متغير لاستخدام الكلاس.........




رابعا: visibility:

ال visibility فى الكلاسات, يقصد بها تصاريح استخدام ما بداخل الكلاس, فهناك 3 أنواع من التصاريح :

1- public: وهو التصريح العام, والذى يصرح لاستخدام الكلاس من اى مكان سواء داخل او خارج الكلاس
2- protected: ويقتصر على استخدام الكلاس من خلال الكلاسات المتوارثه فقط (الممتده)
3-private: وهو التصريح الخاص المقتصر فقط على استخدام الكلاس نفسها فقط


الصيغة العامة:


رمز Code:
class classname {
public $var="";
protected $var="";
private $var="";

}


مثال عملى:

رمز Code:
class visibile{

public $public='public';
protected $protected='protected';
private $private='private';


function usevisible(){

echo $this->public;
echo $this->protected;
echo $this->private;

}
}


$vis= new visibile();
echo $vis->public; // works
echo "<br>";
echo $vis->usevisible();


الناتج:

رمز Code:
public
publicprotectedprivate



الأســـــاســـيات الهامه classes



خامسا: scope resolution operator :

الSRO هى خاصية فى الكلاسات تستخدم للاشارة لمتغير $ او function داخل كلاسا ما,
ولابد ان يكون المتغير حتى نشير له ان يكون ثابت static

مثال عملى:

رمز Code:
class myname2 {

public static $thename="mohamed amin";

function declarescope(){

echo self::$thename;
}

}

$use= new myname2;
$use->declarescope();

الناتج:

رمز Code:
mohamed amin

الأســـــاســـيات الهامه classes الأســـــاســـيات الهامه classes


سادسا: constant:
وهو المتغير الثابت فى الكلاس, الذى قيمته لن تتغير اينما اردت استخدامه من الكلاس


الصيغة العامه:


رمز Code:
class classname{

const varname="";

}

حيث الvarname هى اسم المتغير, ولاحظ اننا لم نحلق المتغير بالعلامة $


مثال عملى :


رمز Code:
class myclass{


const somevar="my website is advphp.com";

function useconstant(){

echo self::somevar;
}
}

echo myclass::useconstant();
echo "<br>";
echo myclass::somevar;


الناتج:

رمز Code:
my website is advphp.com
my website is advphp.com



الأســـــاســـيات الهامه classes


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



ملاحظه: حتى تتذكر كافة أساسيات الكلاسات: لقد قمت بعمل ملف بسيط به كافة أكواد الاساسيات والأمثلة العملية مجمعه سويا,

الكود:

رمز Code:
<?php

//////////////////////////
# class file learning
# done by vista-design
# www.advphp.com
///////////////////////////

//php4: to demonstrate the class constructor that automatically loaded


class myname {

function myname(){

echo "my name is mohamed amin\n";
echo "<br>";
}
}

$use=new myname;
$use->myname(); // u will find that the echo is doubled as the function has the same name of the class,so it consider a constructor function not a regular function




/////////////////////////////////////////////
#extends
////////////////////////////////////////////

/* class secondname extends myname{

function displaysecond(){

echo "second name is vista-design";
}
}

$useextend= new secondname();
$useextend->displaysecond(); // this will print (my name is.... + second name is....)
*/

/////////////////////////////////////////


/////////////////////////////////////////////
#autoload
////////////////////////////////////////////

//auto loading of certain class from afile

/*function __autoload($classname){

require_once $classname. '.php';
}

$useclass = new myclass1();
$useclass = new myclass2(); */

/////////////////////////////////////////////
#construcotrs
////////////////////////////////////////////

/* class useconstructor{

function __construct(){
echo "<br>";
echo "this is the constructor function";
}
}

$useconstructor= new useconstructor(); // as u see the function will load automatically without accessing using $this
*/


///////////////////////////////////////////
#visibility using public protected private
//////////////////////////////////////////

/*
class visibile{

public $public='public';
protected $protected='protected';
private $private='private';


function usevisible(){

echo $this->public;
echo $this->protected;
echo $this->private;

}
}


$vis= new visibile();
echo $vis->public; // works
echo "<br>";
echo $vis->usevisible();


*/

////////////////////////////
# scope resolution operator :: allows access to static, constant, and overridden members or methods of a class.
///////////////////////////

/*
class myname2 {

public static $thename="mohamed amin"; // should be static if u want to use ::

function declarescope(){

echo self::$thename;
}

}

$use= new myname2;
$use->declarescope();

*/

////////////////////
#constant: don't use the $ symbol to declare or use them ,
#The value must be a constant expression, not (for example) a variable, a class member, result of a mathematical operation or a function call.
///////////////////


class myclass{


const somevar="mohamed amin"; // don't do $somevar

function useconstant(){

echo self::somevar;
}
}

echo myclass::useconstant();
echo "<br>";
echo myclass::somevar;



?>




بالتوفيق للجميع


آخر مواضيعي 0 Social_Engineسكربت الفيس بوك + 8 لغات معدل
0 برنامجMPlayer 2010-09-12 Build 80
0 برنامجAVS Video Editor 5.1.2.131
0 مجموعة ارقام مفيدة لشركة فودافون
0 WinRAR 4.00 Beta 6 x86/x64 اخر اصدار 2011 فقط على المهندس كوم
zarzor غير متواجد حالياً   رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
الأســـــاســـيات, الهامه, classes, php


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
مجموعة الجنومون الجديدة Gnomon Master Classes 2009 للجرافيكس mazar منتدى البرامج العام 0 27-12-2009 11:09
مجموعه من الادوات الهامه لصيانة وحفظ استقرار جهازك XP Tools v9.98.18 mr.egypt11 منتدى البرامج العام 0 04-12-2009 10:55
مجموعه من الفلاشات الهامه تشرح نظريه عمل الميكانيزمات الميكانيكيه rany_love10 الهندسة الميكانيكية - Mechanical Engineering 2 25-10-2009 02:47
برنامج FBackup 4.2.155 لعمل نسخ احتياطيه من ملفاتك الهامه باخر اصدار mazamezo منتدى البرامج العام 0 25-08-2009 03:37
فيلم عن كيفية فك و تركيب التربينه وشرح الاحتياطات الهامه في التركيب rany_love10 الهندسة الميكانيكية - Mechanical Engineering 0 04-08-2009 08:41

جميع المشاركات والمواضيع في منتديات المهندس كوم لا تعبر بالضرورة عن رأي إدارته بل تمثل وجهة نظر كاتبها--يمنع وضع أي رابط او مرفق لبرنامج او لعبة ( مكسورة الحماية ) سواء (كراك او سيريل او كيجن او رابط لتبادل الملفات او رابط لموقع آخر أو اي شي قد يخدم هذا المجال

الساعة الآن 10:10.


Powered by vBulletin® Version 3.8.5, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
TranZ By Almuhajir
Jelsoft Enterprises Ltd