الفرق بين إستخدام علامة الإقتباس المزدوجة والمفردة
حيث أن السلسة النصية بين علامتي إقتباس مزدوجتين إذا كان بها اسم متغير يتم طباعة قيمته ولكن في حالةعلامتي الإقتباس المفردتين يتم طباعة اسم المتغير وليس قيمته .
من المعروف أن العمليات الحسابية تتم على المتغيرات العددية فقط فهل لغة PHP تتبع هذا النمط كباقي اللغات وتصدر أخطاء عند مخالفة هذا الأمر ؟ تعالوا بنا لنرى المثال التالي :
<?php
$var1 = 30;
$var2 = '10ahmed'; // سلسة نصية تبدأ برقم
$var3 = 'a120'; // سلسة نصية تبدأ بحرف
$var4 = true;
$var5 = false;
$var6 = null;
$var7 = '20a60'; // قيمة نصية بها أعداد وحروف
$var8 = '20.13hhr60.12';
echo "$var1+$var2 = ".($var1+$var2).'<br>';
echo "$var1+$var3 = ".($var1+$var3).'<br>';
echo "$var1+$var4 = ".($var1+$var4).'<br>';
echo "$var1+$var5 = ".($var1+$var5).'<br>';
echo "$var1+$var6 = ".($var1+$var6).'<br>';
echo "$var1+$var7 = ".($var1+$var7).'<br>';
echo "$var1+$var8 = ".($var1+$var8).'<br>';
?>
- نفذ المثال السابق ولاحظ النتيجة
- إن لم تستسغ الأمر يمكنك استخدام معاملات التحويل التالية :
int
double
float
boolean
bool
string
بالنسبة لـ bool و boolean العمل واحد وأيضاً float و double
والمثال التالي يوضح العملية :
<?php
$var1 = 10;
$var2 = 20.12;
$var3 = '1123456789123456789123456789ahmed';
$var4 = 'ahmed10';
$var5 = '12.123456789123456789ahmed';
echo "(double)$var1 = ".(double)$var1."<br>";
echo "(int)$var2 = ".(int)$var2."<br>";
echo "(string)$var1 = ".(string)$var1."<br>";
echo "(string)$var2 = ".(string)$var2."<br>";
echo "(int)$var3 = ".(int)$var3."<br>";
echo "(double)$var3 = ".(double)$var3."<br>";
echo "(int)$var4 = ".(int)$var4."<br>";
echo "(double)$var4 = ".(double)$var4."<br>";
echo "(int)$var5 = ".(int)$var5."<br>";
echo "(double)$var5 = ".(double)$var5."<br>";
echo "(int)null = ".(int)null ."<br>";
echo "(double)null = ".(double)null ."<br>";
echo "(int)false = ".(int)false ."<br>";
echo "(double)false = ".(double)false ."<br>";
echo "(int)true = ".(int)true ."<br>";
echo "(double)true = ".(double)true ."<br>";
?>
والمثال التالي يوضح عملية التحويل للقيم المنطقية -وسيأتي ذكر هذه الجزئية بتفصيل بعد حالة الشرط if لاحقاً- :
<?php
echo "(bool) = ".(bool)'' ."<br>";
echo "(bool)0 = ".(bool)0 ."<br>";
echo "(bool)'0' = ".(bool)'0' ."<br>";
echo "(bool)12 = ".(bool)12 ."<br>";
echo "(bool)-10 = ".(bool)-10 ."<br>";
echo "(bool)'-100' = ".(bool)'-100' ."<br>";
echo "(bool)12.12 = ".(bool)12.12 ."<br>";
echo "(bool)-13.12 = ".(bool)-13.12 ."<br>";
echo "(bool)12.12ahmed = ".(bool)'12.12ahmed' ."<br>";
echo "(bool)ahmed12.12 = ".(bool)'ahmed12.12' ."<br>";
echo "(int)((bool)0) = ".(int)((bool)0) ."<br>";
?>
- وبإختصار السلسة النصية إذا كانت فارغة فهي تعني false وإن كان بها قيمة أياً كانت فهي تعني true حتى بدون عملية تحويل وسنرى هذا عند حديثنا عن الشروط , وأيضاً الصفر أو 0.0 يعني false وبخلاف ذلك سواء عدد صحيح أو كثري أو عدد سالب فهو يعني true .
* معاملات الزيادة والنقصان :
++ معامل الزيادة
-- معمل النقصان
- ففي حالة كونه قبل المتغير أي يُزاد أو يُنقص من قيمة المتغير قبل تنفيذ الكود البرمجي بمقدار واحد ولكن في حالة كونه بعد المتغير ينفذ الكود البرمجي الموجود به ومن ثَم زيادة أو نقصان المتغير بمقدار الواحد والكود التالي يوضح العملية :
<?php
$var1 = 0;
$var2 = 0;
$var3 = 0;
$var4 = 0;
echo '++$var1 = '.(++$var1);
echo '<br>';
echo '$var1 = '.$var1;
echo '<br>';
echo '$var2++ = '.$var2++;
echo '<br>';
echo '$var2 = '.$var2;
echo '<br>';
echo '--$var3 = '.--$var3;
echo '<br>';
echo '$var3 = '.$var3;
echo '<br>';
echo '$var4-- = '.$var4--;
echo '<br>';
echo '$var4 = '.$var4;
?>
حيث أن السلسة النصية بين علامتي إقتباس مزدوجتين إذا كان بها اسم متغير يتم طباعة قيمته ولكن في حالةعلامتي الإقتباس المفردتين يتم طباعة اسم المتغير وليس قيمته .
من المعروف أن العمليات الحسابية تتم على المتغيرات العددية فقط فهل لغة PHP تتبع هذا النمط كباقي اللغات وتصدر أخطاء عند مخالفة هذا الأمر ؟ تعالوا بنا لنرى المثال التالي :
<?php
$var1 = 30;
$var2 = '10ahmed'; // سلسة نصية تبدأ برقم
$var3 = 'a120'; // سلسة نصية تبدأ بحرف
$var4 = true;
$var5 = false;
$var6 = null;
$var7 = '20a60'; // قيمة نصية بها أعداد وحروف
$var8 = '20.13hhr60.12';
echo "$var1+$var2 = ".($var1+$var2).'<br>';
echo "$var1+$var3 = ".($var1+$var3).'<br>';
echo "$var1+$var4 = ".($var1+$var4).'<br>';
echo "$var1+$var5 = ".($var1+$var5).'<br>';
echo "$var1+$var6 = ".($var1+$var6).'<br>';
echo "$var1+$var7 = ".($var1+$var7).'<br>';
echo "$var1+$var8 = ".($var1+$var8).'<br>';
?>
- نفذ المثال السابق ولاحظ النتيجة
- إن لم تستسغ الأمر يمكنك استخدام معاملات التحويل التالية :
int
double
float
boolean
bool
string
بالنسبة لـ bool و boolean العمل واحد وأيضاً float و double
والمثال التالي يوضح العملية :
<?php
$var1 = 10;
$var2 = 20.12;
$var3 = '1123456789123456789123456789ahmed';
$var4 = 'ahmed10';
$var5 = '12.123456789123456789ahmed';
echo "(double)$var1 = ".(double)$var1."<br>";
echo "(int)$var2 = ".(int)$var2."<br>";
echo "(string)$var1 = ".(string)$var1."<br>";
echo "(string)$var2 = ".(string)$var2."<br>";
echo "(int)$var3 = ".(int)$var3."<br>";
echo "(double)$var3 = ".(double)$var3."<br>";
echo "(int)$var4 = ".(int)$var4."<br>";
echo "(double)$var4 = ".(double)$var4."<br>";
echo "(int)$var5 = ".(int)$var5."<br>";
echo "(double)$var5 = ".(double)$var5."<br>";
echo "(int)null = ".(int)null ."<br>";
echo "(double)null = ".(double)null ."<br>";
echo "(int)false = ".(int)false ."<br>";
echo "(double)false = ".(double)false ."<br>";
echo "(int)true = ".(int)true ."<br>";
echo "(double)true = ".(double)true ."<br>";
?>
والمثال التالي يوضح عملية التحويل للقيم المنطقية -وسيأتي ذكر هذه الجزئية بتفصيل بعد حالة الشرط if لاحقاً- :
<?php
echo "(bool) = ".(bool)'' ."<br>";
echo "(bool)0 = ".(bool)0 ."<br>";
echo "(bool)'0' = ".(bool)'0' ."<br>";
echo "(bool)12 = ".(bool)12 ."<br>";
echo "(bool)-10 = ".(bool)-10 ."<br>";
echo "(bool)'-100' = ".(bool)'-100' ."<br>";
echo "(bool)12.12 = ".(bool)12.12 ."<br>";
echo "(bool)-13.12 = ".(bool)-13.12 ."<br>";
echo "(bool)12.12ahmed = ".(bool)'12.12ahmed' ."<br>";
echo "(bool)ahmed12.12 = ".(bool)'ahmed12.12' ."<br>";
echo "(int)((bool)0) = ".(int)((bool)0) ."<br>";
?>
- وبإختصار السلسة النصية إذا كانت فارغة فهي تعني false وإن كان بها قيمة أياً كانت فهي تعني true حتى بدون عملية تحويل وسنرى هذا عند حديثنا عن الشروط , وأيضاً الصفر أو 0.0 يعني false وبخلاف ذلك سواء عدد صحيح أو كثري أو عدد سالب فهو يعني true .
* معاملات الزيادة والنقصان :
++ معامل الزيادة
-- معمل النقصان
- ففي حالة كونه قبل المتغير أي يُزاد أو يُنقص من قيمة المتغير قبل تنفيذ الكود البرمجي بمقدار واحد ولكن في حالة كونه بعد المتغير ينفذ الكود البرمجي الموجود به ومن ثَم زيادة أو نقصان المتغير بمقدار الواحد والكود التالي يوضح العملية :
<?php
$var1 = 0;
$var2 = 0;
$var3 = 0;
$var4 = 0;
echo '++$var1 = '.(++$var1);
echo '<br>';
echo '$var1 = '.$var1;
echo '<br>';
echo '$var2++ = '.$var2++;
echo '<br>';
echo '$var2 = '.$var2;
echo '<br>';
echo '--$var3 = '.--$var3;
echo '<br>';
echo '$var3 = '.$var3;
echo '<br>';
echo '$var4-- = '.$var4--;
echo '<br>';
echo '$var4 = '.$var4;
?>