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

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

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

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

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

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

والناتج هو :

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

قم بكتابة
الكود وسوف ترى ان النتيجه نفسها نتيجة عمل
settype( $var , 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 |
باقي القسمة |
% |
معاملات حسابيه اخرى :
| تساوي |
مثال |
العملية |
| $x = $x + 5 |
$x +=5 |
+= |
| $x = $x - 5 |
$x -=5 |
-= |
| $x = $x * 5 |
$x *= 5 |
*= |
| $x = $x / 5 |
$x /= 5 |
/= |
| $x = $x % 5 |
$x % = 5 |
%= |
| $x = $x + 1 |
$x++ |
++ |
| $x = $x - 1 |
$x-- |
-- |
شيء مخيف اليس كذلك ؟ بالعكس انه سهل جدا ,
كأنك تقوم بتعلم الرياضيات للمرحله الاولى , لنقم بكتابة بعض
الاكواد وسوف ترى كيفية سهولة الامر , افتح محر الاكواد ولنقم بعمل
بعض من تمارين العمليات الحسابيه الاعتياديه :

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

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