ملاحظه : اشارك "مهتم" في اسمه مؤقتا حتى استطيع التسجيل..
السلام عليكم,,,
كثير من مبرمجين PHP (المبتدئين خاصة) يتقعدون ان التعبيرين التاللين متشابهين تماما من ناحية الاداء :
كود PHP:
echo "welcome to swalif soft";
كود PHP:
echo 'welcome to swalif soft';
في الحقيقه انهم يعملون بطريقه مختلفه نوعا ما , و كل وحده يتفرض تستعملها بوضع معين. الفرق الاساسي بين التعبيرين ان علامتي التنصيص (") تسمح لك انك تضع متغيرات او رموز خاصه (مثل \n) في وسط الجمله مثل :
كود PHP:
echo "your name is $name \n welcome";
لاحظ وجود متغير و رمز \n للسطر الجديد. بعد ما يتنفذ هذا الامر بيكون الناتج بالمتصفح :
your name is khalid
welcome
على افتراض ان متغير $name كان يحمل اسم خالد ; تم استبدال المتغير بقيمته في الجمله , و الرمز بسطر جديد.
لكن فرضا لو اعدنا كتابة الجمله بالطريقه هذي :
كود PHP:
echo 'your name is $name \n welcome';
بيكون الناتج بالمتصفح :
your name is $name \n welcome
يعني الجمله نفس ماهي بالظبط ما تغير فيها ولا شي.
طيب وش الفرق بين الجملتين من ناحية الاداء؟
الفرق ان الطريقه الاولى (بعلامتين تنصيص) تحتاج PHP انه يبحث فيها عن متغيرات و رموز خاصه عشان يستبدلها , بينما اذا استعملت الثانيه (بعلامة تنصيص وحده) فراح يعرف PHP انه كل شي بينطبع زي ماهو تماما بدون استبدال اي شي. يعني اذا كنت تبي تطبع جمل ما فيها متغيرات او رموز خاصه فليش تستعمل علامتين تنصيص و تخلي PHP تبحث في جملتك مع ان مافيها شي اساسا؟ صحيح ان الفرق في السرعه قد يكون بسيط جدا , لكن ممكن يبين معك في البرامج اللي تتطلب طباعة اشياء كثيره للمتصفح.
و ممكن تستعيض عن علامتين التنصيص بالعلامه الوحده في اغلب (او جميع) المواقف , يعني في الجمله السابقه , ممكن نكتبها بالشكل التالي :
كود PHP:
echo 'your name is ' . $name . "\n" . 'welcome';
هنا راح تطبع الجزء الاول , ثم تدمجه مع محتويات المتغير , ثم تضيف سطر جديد ثم تطبع الجزء الاخير. بكذا تكون الطباعه اسرع (نوعا ما) و حتى اسهل للمبرمجين الثانيين اذا جو يقرون الكود تبعك.
تحياتي,
saudi_php@hotmail.com