عرض مشاركة واحدة
عضو نشيط
تاريخ التسجيل: Mar 2005-
#4 (permalink)  
[سجن البرمجة] أنواع المتغيرات والتعامل معها،

سلام الله عليك يا سجين البرمجة الكريم
انت تعبت من السهر على البرمجة وتعريف المتغيرات وبما أنك دخلت سجن البرمجة إذا أنت
خبير في تعريف المتغيرات و التعامل معها
ولكن هل خطر ببالك ما هي أنواع المتغيرات و كيفية التعامل معها ؟
هل خطر ببالك كيف يمكن لأي واحد من الخارج اختراق متغيراتك أو التعامل معها بطريقة
خاطئة ؟
هل خطر ببالك أن لكل نوع من المتغيرات عالم خاص به و دوال خاصة به ؟
هل و هل وهل .. ! أسئلة كثيرة يجب طرحها على كثير من مبرمجينا العرب يجيبك بنعم
أعرف
دون فقه لما يقوله
عذراً ربما تعتبرني يا سجيننا الكريم بالغت .. ولكن هذا هو واقع الحال ..
أنا مثلاًً بقيت فترة كبيرة أبرمج بالـ Php دون فقه لكثير من أشياء كنت اعتبر نفسي
خبيراً بها وعندما واجهتني مشاكل بها أوقفت العمل على كل البرنامج ..
لذلك أقمت على قتل هذا السقم في أدائي بالتعلم من المواقع الأجنبية ..
إذ أن المواقع العربية لا تفيدنا بشكل كبير ...
لذلك فلنحاول يا سجناء البرمجة الكرام أجمعكم بأن نحاول شرح الأشياء التي نعتبرها
صغيرة لكنها كبيرة و قد خصصت الـ Php لها دوال لأهميتها إذ أن كثير من الأحيان يتم
الإلتفاف حولها من قبل خبراء البرمجة و يكشفون ضعف المبرمج من خلال هذه الدوال
فكلنا نتعلم الصعب قبل أن نتعلم الأساسيات السهلة ليس في البرمجة فقط بل بجميع دروب
حياتنا

حسناً يا مسجون البرمجة


أنواع المتغيرات

Integers
الأعداد الصحيحة

كود PHP:
$val 22
ويتم تعريف المتغير كعدد صحيح كما في المثال السابق دون علامة تنصيص

الدوال التي تتعامل معها :

أهم دالة intval

كود:
Intval($val);
تقوم هذه الدالة بجعل المتغير عدد صحيح
مثال :
كود 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(428); // 42
echo intval('42'8); // 34 
وهذه الدالة مهمة جداً للمبرمجين خصوصاً في حالة السيكيورتي وهذا ليس موضوعنا ..

Floating point numbers
الأعداد العشرية

كود PHP:
$val 2.2
وهي ايضا بدون علامات تنصيص

الدوال :
أهم دالة 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 فقط ؟

كود PHP:
Echo $arr[0]; 
كما ترى عزيزي المسجون هنا نستعرض أول قيمة من قيم المصفوفة

كود PHP:
Echo $arr[1]; 
كما ترى يا مسجون البرمجة الكريم أن مفتاح المصفوفة هنا 1 و صفر و 2 و ... الخ
والمفتاح هو الطريق كي تعرض متغير ، إذاً تسأل نفسك أنا مقيّد بهذا المفتاح في كل
مصفوفاتي
كلا يمكنك أن تغير المفتاح كما تشاء عن طريق تعريف المصفوفة
كالتالي

كود PHP:
$a = array ('a' =>; 'apple''b' =>; 'banana'); 
إذاً قمنا بتعريف المفتاح عن طريق وضعه داخل قوسين '' و نضع بعده >;=
كما ترى المفتاح الأول a و الثاني b
واذا أردنا استعراض كلمة apple نكتب التالي

كود PHP:
Echo $a['b']; 
مفهومة أليس كذلك ؟
والمصفوفات يمكن أن تستخدم بطريقة شجرية أو بمعنى أسهل يمكن وضع مصفوفة داخل مصفوفة

ولكن هذا ليس موضوعنا حتى لا تتقاطع الخطوط و ترجع للزنزانة وأنت محتار

دوال المصفوفات كثير وسنستعرض في بعضاً منها ..
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






__________________
حينما يموت الحل ... يولد الإبداع
شباب القمر
سجن البرمجة
أحد مستخدمي : MySmartBB
Dr.Nabhan غير متواجد حالياً   قديم 07-01-2008, 11:08 AM
رد مع اقتباس