ما
معنى متغير ؟ المتغير هو عباره عن مكان او محتوى تضع
فيه قيمة , تخيل كأس يمكن ان يحتوي ماء او عصير اليس
ذلك صحيحا ؟ نفس الشي ينطبق على المتغير هو مكان نحفظ
به قيمة ( بيانات ) . اذن كيف نقوم بتعريف متغير ؟
وكيف نحدد قيم المتغير ؟! في لغة PHP نقوم بتعريف
متغير عن طريق الرمز $ فمثلا لو قلنا اننا نريد ان
نعرف متغيرا اسمه ( name ) ويحتوي على القيمه ( احمد )
فسوف نقوم بالتالي....
بسم
الله الرحمن الرحيم
متطلبات قبل البدأ :
اهداف
الدرس:
-
المتغيرات
- انواع
البيانات
- الثوابت
-
المعاملات
- ترتيب
الاهميات
المتغيرات :
ما معنى متغير ؟ المتغير هو عباره
عن مكان او محتوى تضع فيه قيمة , تخيل كأس يمكن ان
يحتوي ماء او عصير اليس ذلك صحيحا ؟ نفس الشي ينطبق
على المتغير هو مكان نحفظ به قيمة ( بيانات ) . اذن
كيف نقوم بتعريف متغير ؟ وكيف نحدد قيم المتغير ؟! في
لغة PHP نقوم بتعريف متغير
عن طريق الرمز $ فمثلا لو قلنا اننا نريد ان نعرف
متغيرا اسمه ( name
) ويحتوي على القيمه ( احمد )
فسوف نقوم بالتالي:
= "احمد";
لكن يجب عليك الانتباه بأن اسماء
المتغيرات في لغة PHP لها
حدود, نعني بذلك انه يوجد اسماء واحرف غير مسموحه
لتعريف المتغيرات, لنقوم بتسهيل الامر سنذكر المسموح
منها وهو ( احرف ) و ( ارقام ) و ( _ ) فقط.
مثال على الاحرف : (
)
, مثال على الارقام : (
$223 ) ,
مثال على _ : (
) , ارأيت سهولة ذلك ؟
ولكن يفضل ان تكون الاسماء
معبره لكي يسهل عليك كتابة البرنامج ويسهل على الغير
فهم محتواه , فلو اردت ان تعرف متغير يحوي
البريد الالكتروني فسوف يكون كالتالي (
)
او ( )
وليس من المنطقي ان يكون (
$2235 ) او (
)
على سبيل المثال. وتذكر ان يمكنك استخدام اي عدد من
الحروف التي تريد , فهي ليست محدده
لو اردنا ان نقوم بتعريف متغير به
القيمه 1 ومتغير اخر به القيمه 2 ماذا سوف نفعل ؟ سوف
نقوم بتعريف المتغير الاول (
= 1; ) والمتغير
الثاني ( = 2;
) , ماذا لو اردنا طباعته الى
المتصفح , بكل بساطه نقوم بعمل التالي:
( print
; ) و (
print ; )
, لم تقتنع ؟ لم توضح الصوره ؟ مللت من الكلام ؟ لنقم
بتسخين ايدينا قليلا وقم بفتح محرر الاكواد اليك وقم
بكتابة الكود التالي :

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

اذن في المتغير number1
قمنا بوضع القيمه 1 وفي المتغير
number2 قمنا بوضع القيمه
2 ( بإستخدام العلامه =
) وقمنا بطباعة المتغيرات, فرأينا محتوى المتغيرات.
اذن كأننا قلنا ( print 1;
) اليس كذلك ؟
لاحظ هنا ان السطور البرمجيه
تنفذ سطرا سطرا , نعني بذلك اننا سنقوم بتنفيذ السطر
رقم 3 ثم نقوم بتنفيذ السطر رقم 4. لكن قد
تتسائل , فقط نستطيع ان نقوم بوضع قيم ؟ هل يمكن ان
نضع متغير في متغير ؟ نعم يمكن ذلك بهذه الطريقه
( 2
= 1; )
ارأيت السهوله والبساطه في الموضوع
؟ وسوف يقوم بطباعة الرقم 1 . قلنا قبل قليل ان
التنفيذ يكون سطرا سطرا اليس كذلك ؟ لنرى مثالا على
ذلك , اكتب في محرر الاكواد التالي :

قم بتجربة الملف ولاحظ الناتج ,
اذن لان الاوامر تنفذ سطرا سطرا لم يقم المترجم بطباعة
القيمه 2 , لان اخر قيمة اسندت الى المتغير (
2 )
هي قيمة المتغير (
)
, اعتقد ان الامر قد اتضح الان
, لا تنسى ان اسماء المتغيرات
حساسه لحالة الاحرف فالمتغير (
)
لا يساوي المتغير (
) .
انواع
البيانات:
هل لاحظت في الامثله السابقه اننا
قمنا بطباعة ارقام ونصوص, اليس كذلك ؟ ولكن ماهي انواع
البيانات الي تأخذها المتغيرات وانواعها ؟ لدينا عدة
انواع من المتغيرات الا وهي : ( نصوص = string
) , ( ارقام = integer )
, ( ارقام عشريه = Double
) , ( المتغير Boolean )
, ( مصفوفه = array )
, ( كائن = object )
, في بداية تعلمنا سوف نقوم بالتعرف على النصوص
والارقم العشرية والمتغير Boolean
, اما الاخري فسوف تكون في دروس
متقدمه اخرى , لنأخذ امثله على هذه المتغيرات
|
مثال |
الاسم |
|
"Mohammad" |
string |
|
123 |
Integer |
|
1.23 |
Double |
|
True / False |
Boolean |
لاحظ اننا عندما نريد طباعة نص يجب
ان نقوم بوضعه بين علامتي التنصيص " " او ' '
اي واحد منهما تقوم بإختياره ,
ولكن اذا بدأت بواحد منهم يجب ان ينتهي النص بنفسه فلا
يصح ان نقول ( "mohammad' )
ولكن الصحيح ( "mohammad" )
او ( 'mohammad' ) وضحت
الصوره ؟
معلومه خارجيه : تسمى لغة
PHP
اللغه المسامحه ولذلك انك عند وضع
القيمه داخل المتغير لا تحتاج ان تقوم بتحديد النوع ,
فإن المترجم يقوم بعرفة النوع من تلقاء نفسه , ماعليك
فعله فقط ان تقوم بوضع علامة $ قبل اسم المتغير.
تخيل انك تريد معرفة نوع قيمة
موجوده في متغير , ماذا يجب عليك ان تفعل , امر بسيط
جدا وهو ان تقوم بإستخدام الداله
gettype();
وسوف تقوم هذه الداله بطباعة نوع
المتغير الموجود لديك , لنأخذ امثله على ذلك , افتح
محرر الاكواد وقم بكتابة التالي

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

لاحظ ان المتغير
نوعه
NULL وذلك لاننا لم نقم
بتعيين اي قيمه له , ومعنى NULL
هو فراغ او لا شيء
ماذا لو اردنا تغيير قيمة متغير من
نوع الى اخر , من integer الى
string فمالذي نفعله ؟ نقوم
بإستخدام الداله settype(
, new type ) لكي تقوم
بالعمل المطلوب , لنأخذ مثالا لتوضيح الصوره

والناتج هو :

والبقية نفس المنوال , فقط قم بوضع المتغير , ثم ضع
النوع المراد التحويل اليه
هناك طريقة اخرى لتغيير نوع
المتغير وتسمى ( Casting )
وهي بالطريقة التاليه :

قم بكتابة الكود وسوف ترى ان
النتيجه نفسها نتيجة عمل
settype( , new type )
والاختلاف الوحيد ان طريقة ( Casting )
لا تقوم بتغيير نوع المتغير
الاساسي او فعليا , ولكن تقوم بوضع نسخه من المتغير
وتقوم بتغييرها الى النوع المراد , ولكن على عكس
الاخرى فهي تقوم بتغير النوع فعليا
هناك شي اخر وهو لو
اردنا جمع متغيرين مع بعضهما البعض في سطر واحد , فسوف
نقوم بإستخدام ( . ) , لم توضح الصوره وانا متأكد ,
لنأخذ مثال يبين لنا المعنى , افتح محرر الاكواد مجددا
وقم بكتابة التالي :

والناتج هو التالي:

الثوابــــت:
رأيت في السابق اننا نقوم بإنشاء
متغيرات ونقوم بتغيير انواعها والكثير من الامور ولكن
يوجد لدينا الثوابت , ماهي الثوابت ؟ من الاسم يمكنك
ان تستنج انه متغير ثابت ولا يتغير ابدا مهما حصل , قد
تتسائل لماذا نحتاج الى هذه النوع من المتغيرات ,
والاجابه هي , تخيل ان لدينا اسعار بعض من منتجاتنا ,
وهذه الاسعار ثابته ولا تتغير ؟ فسوف نقوم بوضعها في
الثوابت بالطريقه التاليه
define( 'var' , value ) هل
وضحت الصوره ؟؟ لنأخذها بالعربيه
define('اسم
المتغير' , القيمه )
, هل عرفت الان الطريقة ؟ لنقم
ببعض الامثله ,تخيل انه لدينا مطعم ونبيع الببسي بثلاث
انواع , صغير وقيمته ريال واحد , وسط وقيمته ريالان ,
كبير وقيمته 3 ريالات , قم بكتابة التالي ,
والناتج هو التالي :

الفرق بين المتغيرات والثوابت , هي
انه عندما نريد ان نقوم بطباعة الثابت او استخدامه لا
نقوم بوضع علامة $ في الثابت ابدا , وايضا من الاسماء
الممنوع استخدامها في متغيرات لغة PHP
الثوابت المعرفة في نفس اللغه ,
وهي ثابته ولا تتغير ولمشاهدتها قم بكتابة التالي في
محرر الاكواد

وقم بتشغيل الملف وشاهد النتيجه :)
. (( سوف تظهر لك صفحه يوجد بها
اعدادات هذه اللغه , لا تهتم لها الان فقط انظر الى
الثوابت Variables
))
المعامــلات:
لدينا ثلاث انواع من المعاملات في
لغة PHP وهي المعاملات
الحسابيه , معاملات المقارنه , المعاملات المنطقيه
وسوف نتكلم عنها بالتفصيل
المعاملات الحسابيه
المعاملات الحسابيه
الاعتياديه
|
نتيجة المثال |
مثال |
الاسم |
المعامل |
|
2 |
1+1 |
جمع |
+ |
|
0 |
1-1 |
طرح |
- |
|
6 |
2*3 |
ضرب |
* |
|
3 |
6/2 |
قسمه |
/ |
|
1 |
10%3 |
باقي القسمه |
% |
معاملات حسابيه اخرى :
|
تساوي |
مثال |
العمليه |
|
= + 5 |
+=5 |
+= |
|
= - 5 |
-=5 |
-= |
|
= * 5 |
*= 5 |
*= |
|
= / 5 |
/= 5 |
/= |
|
= % 5 |
% = 5 |
%= |
|
= + 1 |
++ |
++ |
|
= - 1 |
-- |
-- |
شيء مخيف اليس كذلك ؟
بالعكس انه سهل جدا , كأنك تقوم بتعلم الرياضيات
للمرحله الاولى , لنقم بكتابة بعض الاكواد وسوف ترى
كيفية سهولة الامر , افتح محر الاكواد ولنقم بعمل بعض
من تمارين العمليات الحسابيه الاعتياديه :

ارأيت
سهولة الامر ؟ فقط عليك ان تقوم بذكر رموز العمليات
وسوف يكون لديك الناتج , لنقم الان ببعض تمارين
المعاملات الحسابيه الاخرى , قم بكتابة التالي :

لاحظ اننا هنا قمنا
بتغيير قمية محتوى المتغير الاساسية , وليس مؤقتا , قم
بتجربة العمليات الاخرى , حتى ولو كانت هناك بعض
الاخطاء , قم بالتكرار ومحاولة معرفة الخطأ وسوف تفهم
جميع الاكواد السابقه.
سوف
نقوم الان بذكر معاملات المقارنه والمعاملات المنطقيه
ولكن لن نقوم بعمل اي تمارين عليها , وذلك لانها سوف
تستعمل في الدرس القادم
معاملات
المقارنـــــه :
|
المعنى |
المعامل |
|
يساوي |
= = |
|
لا يساوي |
!= |
|
يساوي ومن نفس
النوع |
= = = |
|
اكبر من |
> |
|
اكبر من ويساوي |
>= |
|
اصغر من |
< |
|
اصغر من ويساوي |
<= |
المعاملات المنطقية
:
|
النتيجه |
مثال |
يكون صحيح عند |
الاسم |
المعامل |
|
true |
true || false |
احد الطرفين صحيح |
او |
|| |
|
true |
true OR false |
احد الطرفين صحيح |
او |
OR |
|
false |
true && false |
كل الطرفين صحيحه |
و |
&& |
|
false |
true AND false |
كل الطرفين صحيحه |
و |
AND |
|
false |
true xor true |
احد الطرفين صحيح
وليس الاثنان |
xor |
xor |
|
false |
!ture |
الطرف ليس صحيح |
لا |
! |
قد تتسائل لماذا يوجد
لكل نوع اثنان من الاشكال ؟ والجواب سوف يكون في القسم
التالي وهو ترتيب الاهميات
ترتيب
الاهميــــات:
عند استخدام المعاملات
يقوم المترجم بالقراء من اليمين الى اليسار في الحالات
العاديه وعند استخدام معامل واحد , ولكن تخيل لدينا
اكثر من معامل في سطر برمجي واحد ؟ هنا يقوم المترجم
بالاختيار حسب الاهميه , لنأخذ مثال على ذلك , تخيل ان
لديك العمليه التاليه :
4 + 5
فماهو الناتج ؟؟؟ الناتج واضح وليس
به اي غموض وهو 9
ولكن تخيل لو لديك العمليه التاليه
4 + 5 * 2 ؟؟؟ فما هو
ناتج العمليه الحسابيه ؟ الجواب هو 14 , لان المترجم
قرأ عملية الضرب اولا ثم عملية الجمع , ويمكن ان تقوم
بإجبار المترجم على قراء عملية الجمع اولا بإستخدام
الاقواس , مثال : ( 4 + 5 ) * 2
وسوف يكون الناتج 18 , في الجدول التالي سوف تقوم
بمعرفة الاهميات وترتيبها وماهي المعاملات التي تنفذ
قبل الاخرى ( من الاعلى الى الاسفل )
|
المعامل |
|
++ , -- , (cast) |
|
/ , * , % |
|
+ , - |
|
< , <= , => , > |
|
= = , = = = , != |
|
&& |
|
|| |
|
= , += , -= , /=
, *= , %= , .= |
|
AND |
|
xor |
|
OR |
لا تتعجل بالحكم على ان اللغه صعبه
, يمكن ان لا اكون قد وضحت فكرة الشرح بشكل جيد , او
لم يكن القائي جيدا , ولكن اعدك في الدرس القادم انك
سوف تعرف معنى هذه المتغيرات وكيفية استعاملها , ومع
الدرس القادم , تبدأ به متعة لغة PHP