سلام الله عليك يا سجين البرمجة الكريم
انت تعبت من السهر على البرمجة وتعريف المتغيرات وبما أنك دخلت سجن البرمجة إذا أنت
خبير في تعريف المتغيرات و التعامل معها
ولكن هل خطر ببالك ما هي أنواع المتغيرات و كيفية التعامل معها ؟
هل خطر ببالك كيف يمكن لأي واحد من الخارج اختراق متغيراتك أو التعامل معها بطريقة
خاطئة ؟
هل خطر ببالك أن لكل نوع من المتغيرات عالم خاص به و دوال خاصة به ؟
هل و هل وهل .. ! أسئلة كثيرة يجب طرحها على كثير من مبرمجينا العرب يجيبك بنعم
أعرف
دون فقه لما يقوله
عذراً ربما تعتبرني يا سجيننا الكريم بالغت .. ولكن هذا هو واقع الحال ..
أنا مثلاًً بقيت فترة كبيرة أبرمج بالـ Php دون فقه لكثير من أشياء كنت اعتبر نفسي
خبيراً بها وعندما واجهتني مشاكل بها أوقفت العمل على كل البرنامج ..
لذلك أقمت على قتل هذا السقم في أدائي بالتعلم من المواقع الأجنبية ..
إذ أن المواقع العربية لا تفيدنا بشكل كبير ...
لذلك فلنحاول يا سجناء البرمجة الكرام أجمعكم بأن نحاول شرح الأشياء التي نعتبرها
صغيرة لكنها كبيرة و قد خصصت الـ Php لها دوال لأهميتها إذ أن كثير من الأحيان يتم
الإلتفاف حولها من قبل خبراء البرمجة و يكشفون ضعف المبرمج من خلال هذه الدوال
فكلنا نتعلم الصعب قبل أن نتعلم الأساسيات السهلة ليس في البرمجة فقط بل بجميع دروب
حياتنا
حسناً يا مسجون البرمجة
أنواع المتغيرات
Integers
الأعداد الصحيحة
ويتم تعريف المتغير كعدد صحيح كما في المثال السابق دون علامة تنصيص
الدوال التي تتعامل معها :
أهم دالة intval
تقوم هذه الدالة بجعل المتغير عدد صحيح
مثال :
كود PHP:
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 1410065408
echo intval('1e10'); // 1
echo intval(0x1A); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8); // 42
echo intval('42', 8); // 34
وهذه الدالة مهمة جداً للمبرمجين خصوصاً في حالة السيكيورتي وهذا ليس موضوعنا ..
Floating point numbers
الأعداد العشرية
وهي ايضا بدون علامات تنصيص
الدوال :
أهم دالة floatval
هذه الدالة تقوم بإستخراج الأرقام العشرية من بين النصوص
كود PHP:
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
String
النصوص
كود PHP:
$val = "This is astring num 555";
وهي للنصوص وكما ترى يجب تعريفها وحولها عمليات تنصيص
Boolean
المثال يوضح كل شيء
كود PHP:
$val = true;
$val = false;
في الأولى المتغير موجود وفي الثانية المتغير غير موجود
Array
وهنالك النوع المشهور بالـ Array أو المصفوفة
وهذه المصفوفة تقوم بإدخال أكثر من قيمة للمتغير الواحد كالتالي
كود PHP:
$arr = array(5,"the","num 500");
كما ترى أنواع المتغيرات عشوائية
الآن كيف يمكنك استعراض الرقم 5 فقط ؟
كما ترى عزيزي المسجون هنا نستعرض أول قيمة من قيم المصفوفة
كما ترى يا مسجون البرمجة الكريم أن مفتاح المصفوفة هنا 1 و صفر و 2 و ... الخ
والمفتاح هو الطريق كي تعرض متغير ، إذاً تسأل نفسك أنا مقيّد بهذا المفتاح في كل
مصفوفاتي
كلا يمكنك أن تغير المفتاح كما تشاء عن طريق تعريف المصفوفة
كالتالي
كود PHP:
$a = array ('a' =>; 'apple', 'b' =>; 'banana');
إذاً قمنا بتعريف المفتاح عن طريق وضعه داخل قوسين '' و نضع بعده >;=
كما ترى المفتاح الأول a و الثاني b
واذا أردنا استعراض كلمة apple نكتب التالي
مفهومة أليس كذلك ؟
والمصفوفات يمكن أن تستخدم بطريقة شجرية أو بمعنى أسهل يمكن وضع مصفوفة داخل مصفوفة
ولكن هذا ليس موضوعنا حتى لا تتقاطع الخطوط و ترجع للزنزانة وأنت محتار
دوال المصفوفات كثير وسنستعرض في بعضاً منها ..
Print_r
وهذه الدالة تقوم بعرض كافة قيم المصفوفة و أرقامه
<br />
كود PHP:
$a = array ('a' =>; 'apple', 'b' =>; 'banana');
print_r ($a);
الناتج
كود PHP:
Array
(
[a] =>; apple
[b] =>; banana
)
إذا هذه الدالة عرضت لي المصفوفة بمفاتيحها بقيمها .
سهلة أليس كذلك ؟
Is_array
وهذه الدالة تستفسر عمّا إذا كان المتغير مصفوفة أم string أو أي نوع آخر ؟
مثلاًً
كود PHP:
<br />
$yes = array('this', 'is', 'an array');
$no = 'this is a string';
if(is_array($yes)) { echo 'Array'; }
Else { echo 'not an Array'; }
echo if(is_array($no)) { echo 'Array'; }
Else { echo 'not an Array'; };
in_array
هذه الدالة تستفسر عمّا إذا كان المتغير الممرر لها في داخل المصفوفة المطلوبة أم
لا ؟
مثال :
كود PHP:
$yes = array('this', 'is', 'an array');
If (in_array('this',$yes))
{
Echo "Great your val is in our array";
}
Else
{
echo "Go Out :D";
}
كما ترى يا مسجوني المصفوفات ليست صعبة جداً لكنها عالم كامل لذا أنصحك بمحاولة
التعمق فيها لأهميتها في php
وأنا بإذن الله كلما توفر الوقت سأتكلم عن المصفوفات
دوال المتغيرات العامة
Gettype
هذه الدالة كي تستخرج نوع المتغير إن كان srting أو اخوته
كود PHP:
$val = 2;
$val_type = $gettype($val);
echo $val_type; // integer
Settype
هذه الدالة لتغيير نوع المتغير من نوع لآخر ..
كود PHP:
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo is now 5 (integer)
settype($bar, "string"); // $bar is now "1" (string)
Empty
يستفسر عمّا إذا المتغير فارغ أو لبس له قيمة
كود PHP:
If (empty($val)) { echo "No val"; }
ويمكن الاستغناء عنها كالتالي
كود PHP:
If (!$val) { echo "No val"; }
Isset
عكس الدالة السابقة وهي تستفسر إن كان المتغير له قيمة أو لا ؟
كود PHP:
If (isset($val)) { echo "the val is set and it's value=$val"; }
ويمكن الاستغناء عنها كالتالي
كود PHP:
If ($val) { echo "the val is set and it's value=$val"; }
Unset
للاستغناء عن المتغير و تفريغ قيمته (وداعا)
كود PHP:
$val = "Hi";
echo $val; // hi
unset($val);
Echo $val; // no thing will appear
ويمكن استخدامها لتدمير قصدي الاستغناء عن أكثر من متغير هكذا
كود PHP:
unset($foo1, $foo2, $foo3);
get_defined_vars
دالة غريبة عجيبة .. تأتي بجميع المتغيرات المعرفة لديك في مصفوفة واحدة
كود PHP:
$val = "d";
$val_arr = get_defined_vars();
Echo $val_arr['val']; // d
أفهمتها ؟
انت تقوم بتعريف متغير بهذه الدالة فتعيد لك الدوال بأسمائها في مصفوفة واحدة
مثال آخر
كود PHP:
$val_arry = (1,2,3,3);
$arr = get_defined_vars();
Print_r($arr['val_arry']);
هذا ما لدينا يا سجيننا الكريم
ولنا لقاء 
تاريخ الكتابة : 30 يوليو 2006