جهِّز نفسك لسوالف كاست، واحصل على Macbook Air
ويكيمانيا 2008. الإسكندرية، من 17 وحتى 19 يوليو

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Jun 2004-
#1 (permalink)  
سلسلة دروس جديدة وغير مكررة في php


بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته...

تحية طيبة لجميع عشاق php .. أحببت في البداية أن أقدم هذا الموضوع كسلسلة تحتوي على مجموعة من الدروس وكل درس يتم وضعه في مقال منعزل ضمن هذا الموضوع وهذه الدروس في معظمها جديدة واستطعت التعرف عليها من خلال بحثي في اغوار هذه اللغة وأرجوا من الله أن ينفع بها كل مبرمج..

الدرس الأول : المتغير من نوع دالة

الجميع يعرف أن PHP تحتوي على العديد من أنواع المتغيرات مثل string, int, float, array, object.. وهي أنواع لتمثيل نوع البيانات التي يتم تخزينها في المتغير نفسه فمثلاً عندما يقال لك أن المتغير y من نوع int فسيتبادر إلى ذهنك أن y يحتوي على عدد مثل 5 أو 770 ... إلخ

وهكذا لبقية أنواع المتغيرات ...

يمكن أن يكون نوع المتغير هو function أو callback function ..

مامعنى ذلك ؟

أي يمكن أن يكون نوع المتغير هو دالة أي أن المتغير يخزن بداخله دالة

طيب كيف ذلك يا عبدالله عيد ؟


لاحظ المثال التالي ...

كود PHP:
<?php
function foo() {
    echo 
"In foo()<br />\n";
}

$func 'foo';
$func();        // This calls foo()

?>
الآن لاحظ أننا قمنا بعمل دالة عادية بإسم foo ولإستدعاء الدالة سنقوم بكتابة foo() وهذا ما هو متعارف عليه ولكن كما ترى في المثال السابق أنه قام بتعريف متغير أسماه func ووضع فيه اسم الدالة foo فقط وأصبح المتغير func من نوع string الآن استخدم الأقواس الخاصة بالدالة مع إسم المتغير كما ترى في المثال الموجود بالأعلى وعندها ستكتب

كود PHP:
<?php $func ();?>
عندما يجد مترجم php هذا المتغير مع الأقواس سيفترض عندها أن المتغير هو من نوع string وأن بداخله إسم الدالة أي يستخدم كإسم مستعار للدالة ...

وللزيادة في التوضيح لاحظ المثال التالي

كود PHP:
<?php
// This is a wrapper function around echo
function echoit($string)
{
    echo 
$string;
}

$func 'echoit';
$func('test');  // This calls echoit()

?>
نهاية الدرس الأول .. وانتظروا الدرس الثاني
وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 03:36 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: May 2007-
#2 (permalink)  

جزاك الله خيراً أستاذ عبدالله عيد .. موضوع جميل وشيق بارك الله فيك ...

كنت قد تحدثت في هذا الموضوع في أحد مقالاتي في ديفبيدا ( دالتك .. كيف ***يها وتتعامل معها ؟! ) ...

شكراً لك مرة اخرى .. موضوع جميل .. وبالتوفيق ان شاء الله

تحياتي، أشرف السمهوري






أشرف السمهوري غير متواجد حالياً   قديم 17-07-2007, 04:30 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#3 (permalink)  
الدرس الثاني : النوع متغير متغير في PHP

الدرس الثاني : النوع متغير متغير في php

بسم الله الرحمن الرحيم

مفهوم متغير متغير أو (variable-variable) في php يشبه نوعاً ما المؤشرات في لغة C لمن لديهم خبرة سابقة في لغة C ولكن ليس مثله بالضبط ….

فالجميع يعرف أن تعريف متغير في php هو بوضع علامة $ قبل المتغير وهذا هو المتغير العادي …

مثل


كود PHP:
<?php
$a 
‘abdulah’;
?>

إذاً ماهو مفهوم متغيرمتغير في php ؟

أولاً لتعريف متغير متغير فإننا نضع علامتي $$ بدلاً من علامة واحدة فعلى سبيل المثال لو لاحظت المتغير a الموجود بالأعلى فهو يحتوي على قيمة abdulah .. فالآن لو قمت بكتابة التالي :


كود PHP:
<?php

$a 
‘abdulah’;
$
$a ‘welcome to variable variable’;

?>

فالآن لاحظ الكود التالي الذي هو مربط الفرس لهذا المفهوم كالتالي

كود PHP:
<?php
echo $abdulah;
?>
فإن النتيجة ستكون ‘welcome to variable variable’ …

لقد قمنا بإستخدام القيمة الموجودة في المتغير a وهي abdulah كمتغير وعلامة $ الثانية تشير إلى وضع القيمة الجديدة في القيمة القديمة كمتغير

أما الفائدة من هكذا عملية هو لإستخدام المتغيرات بشكل ديناميكي فمثلاً لو أنني أردت أن أضع قيمة في متغير لا أعرف أسمه أي سأخذ هذا الأسم من المستخدم وأقوم بصنع متغير من الأسم الذي أدخله المستخدم فإنني أحتفظ بالأسم في متغير ثم أضع لهذا المتغير علامتي $$ ولكي اخزن قيمة جديدة فيه وهكذا …

أتمنى أن تكون الفكرة قد اتضحت …

نهاية الدرس الثاني .. وانتظروا الدرس الثالث
وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 05:40 PM
رد مع اقتباس
عضو فعال
تاريخ التسجيل: Aug 2005-
#4 (permalink)  

الف شكر يا استاذ عبد الله الموضوع فعلا جميل
جزاك الله كل خير






__________________
أحمد أبو النصر
Junior php Developer
+20166196074
أحمد أبو النصر غير متواجد حالياً   قديم 17-07-2007, 05:42 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#5 (permalink)  

شرح رائع
جزاك الله خير اخوي عبدالله






رومنسي ksa غير متواجد حالياً   قديم 17-07-2007, 07:42 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#6 (permalink)  
العلاقة بين include و return

الدرس الثالث : العلاقة بين include و return

هذا الدرس يوضح وجود علاقة بين كلاً من include و return فالجميع يعرف أن include تقوم بتضمين محتويات ملف داخل ملف اخر … الآن لاحظ المثال التالي وليكن في ملف بإسم my.php
كود PHP:
<?php

// my.php file
$c * (20 7);
return 
$c;
?>
قد تستغرب من هذا المثال لأن المعروف عن return هو إستخدامها بداخل الدوال فقط ولكن مافائدة إستخدامها بهذا الشكل ؟ الآن لاحظ الملف التالي بإٍسم myinc.php

كود PHP:
<?php

// myinc.php
$yy = include(’my.php’);
echo 
$yy;

?>
ستكون قيمة المتغير yy هي 52 لأن الملف my.php يرجع نتيجة التعبير وعند تضمين الملف بواسطة include يمكنك إستقبال هذه القيمة في متغير وبكلام أخر فإن include عملت كدالة هنا لعمل شئ معين ولم تعمل للتضمين فقط . وأرجوا أن تكون العلاقة بينهما قد إتضحت …

ويمكن تطبيق ما تم ذكره على include_once, require, require_once .. لأن لها نفس عمل include مع بعض الفروقات ...

نهاية الدرس الثالث .. وانتظروا الدرس الرابع
وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 08:42 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#7 (permalink)  

كل مرة تتحفنا بالدروس النادرة
شكرا لك اخي

لي طلب عندك فضلا وليس امرا وهو ان تكمل على الدروس السابقة في برمجة محرك القوالب

كذلك مارأيك في تجميعة دروسك في مفهوم الكائنات class الذي كتبت موضوع هنا قبل ايام
تقبل خالص احترماتي.






عبد الواحد البشيري غير متواجد حالياً   قديم 17-07-2007, 08:42 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#8 (permalink)  

بصراحة رأيت التجميع وأنزلت الملف وما أفرحني أنها مبادرة ممتازة للمساعدة
أما بالنسبة لمحرك القوالب فسأشرحها بشكل موسع إن شاء الله في الأيام القادمة عندما أجد الوقت الكافي وأقوم بتوزيعها إن شاء الله تعالى ..

تحياتي

أخوك عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 08:47 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#9 (permalink)  

اقتباس:
المشاركة الأصلية كتبت بواسطة عبدالله عيد
بصراحة رأيت التجميع وأنزلت الملف وما أفرحني أنها مبادرة ممتازة للمساعدة
أما بالنسبة لمحرك القوالب فسأشرحها بشكل موسع إن شاء الله في الأيام القادمة عندما أجد الوقت الكافي وأقوم بتوزيعها إن شاء الله تعالى ..

شكرا لك اخي على الرد بالايجاب على التجميع والدروس المستقبلية






عبد الواحد البشيري غير متواجد حالياً   قديم 17-07-2007, 09:27 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#10 (permalink)  
التعرف على باراميترات الدالة أثناء تنفيذها ..

الدرس الرابع : التعرف على باراميترات الدالة أثناء تنفيذها ..

من المعروف أنه عند تعريفك لدالة معينة فإنك ربما تستخدم عدد معين
من الباراميترات مع الدالة أو ربما لا تستخدم أي باراميتر أي أن الدالة
لا تحتوي على باراميترات ...

والمقصود بالبارميترات هي المتغيرات التي تأتي بين قوسي الدالة عند تعريفها

ومثال على ذلك

كود PHP:
<?php
function myData($a,$wyc,$xyz)
{
 
//do somthing here
}
?>
فكما تلاحظ فإن كلاً من a, wyc, xyz هي عبارة عن متغيرات عادية ولكن
كونها أتت بين قوسي الدالة أثناء تعريفها فيطلق عليها باراميترات أو
ارجيومينت ..

لو نظرنا إلى الدالة myData في الأعلى فإنه عند إستدعاء الدالة يجب أن
نعبئ الثلاث بارميترات الخاصة بالدالة أي يجب أن نكتب

كود PHP:
<?php
myData
(1,'welcome',true);
?>
ولكن إذا كتبت شيئاً مثل :

كود PHP:
<?php
myData
();
?>
وسنستثني هنا الباراميترات الإفتراضية ... فعندها سيصدر المترجم الخاص باللغة تحذيراً على كل متغير (باراميتر) للدالة لم يتم وضع قيمة له
وهنا لم يتم وضع قيم للثلاثة بارميترات وعندها سيصدر لك شئ مثل :

كود:
Warning: Missing argument 1 for myData() in c:\wamp\www\demo.php on line 3
Warning: Missing argument 2 for myData() in c:\wamp\www\demo.php on line 3
Warning: Missing argument 3 for myData() in c:\wamp\www\demo.php on line 3
وإذا كتبت مثلاً

كود PHP:
<?php
myData
(1024);
?>
سيعطيك رسالتين تحذير لأنه بقي باراميترين ... وهكذا ..

درسنا هذا سيغطي موضوع التعرف على البارميترات واستخدامها ومعرفة عددها أثناء تنفيذ الدالة وإستدعائها وعندها نستطيع أن نعمل
دالة تستخدم عدد غير محدد من البارميترات دون أن نكتب أي باراميتر للدالة الأساسية أثناء تعريفها .. كيف ذلك ؟ تابع معنا


سنقوم بتعريف دالة بإسم mySwalif وهذه الدالة تستطيع أن تتعامل مع أي عدد من البارميترات دون تحديد مسبق ..

كيف ؟

هنالك الكثير من الدوال للتعامل مع الدوال وهنا سنتعامل مع دالتين مهمة وهي :

1- func_num_args
2- func_get_arg

سيأتي شرحها في الأسفل ..

الآن سنعرف دالة عادية mySwalif لطباعة كلمة swalif كالتالي :

كود PHP:
<?php

 
function mySwalif()
 {
  echo 
'swalif';
 }
 
?>
وعند الإستدعاء سنكتب

كود PHP:
<?php
 mySwalif
();
?>
عندها سيكون كل شئ على مايرام ...

ولكن لو ك***ا

كود PHP:
<?php
 mySwalif
('anystring');
?>
فإن مترجم php سيصدر رسالة مفادها ان دالة mySwalif ليس لها بارميترات .. وهذا مانخشاه ..

إذا كيف سنحول دالة mySwalif إلى دالة تستطيع أن تقبل أي عدد من البارميترات التي يمررها المستخدم عند إستدعاء الدالة ؟

الجواب هو بإستخدام دالتي func_num_args و func_get_arg

و للتحذير فإن هذه الدالتين لا تستخدم إلا من داخل الدالة التي تعرفها أي لا تستطيع إستخدام الدالتين مباشرة ضمن الملف أي يجب أن تكتب
الدالتين داخل دالة أثناء تعريفها ...

بالنسبة للدالة func_num_args وظيفتها أنها تقوم بإرجاع عدد البارميترات التي مررها المستخدم للدالة
أما بالنسبة للدالة func_get_arg ووظيفتها هي احد البارميترات التي مررها المستخدم للدالة وذلك بتحديد رقم الباراميتر الذي تريده
وأول بارميتر يكون من الرقم 0 صفر .. وللتوضيح لاحظ المثال التالي الذي سيجعل دالة mySwalif تقبل أي عدد من البارميترات كالتالي :

كود PHP:
<?php
function mySwalif()
{
  
$num_args func_num_args(); //هنا سترجع الدالة عدد البارميترات التي مررها المستخدم للدالة
  
for($i 0$i $num_args$i++)
   {
     
$param func_get_arg($i); //هنا ستحضر قيمة البارميتر الأول ومن ثم الثاني وهكذا
      
echo '<b>'.$param.'</b><br/>';
   }
}
?>
الآن بإمكاني كتابة مايلي بدون مشاكل

كود PHP:
<?php
 
 mySwalif
();
 
mySwalif('welcome');
 
mySwalif('welcome','to');
 
mySwalif('welcome','to','swalif');
 
mySwalif('welcome','to','swalif',2007);

?>
وأرجوا أن تكون الفكرة قد اتضحت ...

نهاية الدرس الرابع .. وانتظروا الدرس الخامس

وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 09:50 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2007-
#11 (permalink)  

أقول أيه غير
تسبقنا دائما وفقك الله وأعانك
موضوعاتك دائما بالمقدمة






__________________
PHP-Tiger
php Professional
www.mu4all.ueuo.com
asoft غير متواجد حالياً   قديم 17-07-2007, 10:46 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#12 (permalink)  
الصيغة البديلة للـ control structure

الدرس الخامس : الصيغة البديلة للـ control structure

بإختصار هذا الدرس يوضح الصيغ البديلة لكل من if, else, elseif, while, for, switch .... وغيرها من أدوات التحكم في اللغة ...

ما المقصود بالصيغة البديلة (Alternative Syntax) هي أنه يمكنك كتابة ادوات التحكم مثل if وغيرها بطريقة أو بشكل أخر .. و للتوضيح أكثر لاحظ ما يلي :

أنت في العادة تكتب if كالتالي :

كود PHP:
<?php
 
if($the_bool_exp)
  {
    
//do somthing...
  
}
?>
جميل جداً ...


قاعدة الصيغة البديلة
في الصيغة البديلة تستبدل الأقواس { , } بما يلي :

1- قوس الفتح { يستبد بـ : نقطتين
2- قوس الإغلاق يستبدل بكلمة end ملتصق بها إسم اداة التحكم المستخدمة يتبعها فاصلة منقوطة أي في حالة if تكون endif ..


وإذا أردنا تحويل ماذكرناه إلى الصيغة البديلة نقوم بالتالي :


كود PHP:
<?php
 
if($the_bool_exp) :
    
//do somthing...
  
endif;
?>
لاحظ المثال التالي الخاص بـ if

كود PHP:
<?php
if ($a == 5):
    echo 
"a equals 5";
    echo 
"...";
elseif (
$a == 6):
    echo 
"a equals 6";
    echo 
"!!!";
else:
    echo 
"a is neither 5 nor 6";
endif;
?>
وهذه القاعدة لجميع أدوات التحكم و للتوضيح إليك الأمثلة التي تعطيك التصور الأفضل :

بالنسبة لـ while
كود PHP:
<?php
$i 
1;
while (
$i <= 10):
    echo 
$i;
    
$i++;
endwhile;

?>
بالنسبة لـ switch

كود PHP:
<?php
switch ($i):
case 
0:
    echo 
"i equals 0";
    break;
case 
1:
    echo 
"i equals 1";
    break;
case 
2:
    echo 
"i equals 2";
    break;
default:
    echo 
"i is not equal to 0, 1 or 2";
endswitch;
?>
وهكذا بالنسبة for, foreach,dowhile...

أما فائدة الصيغة البديلة فهي ممكن أن تكون في إلغاء فكرة الأقواس وتداخلها وجعل الكود يكون كتابياً أكثر من كونه ملئ بالأقواس

وثانياً لإعطاء المبرمج حرية كتابة مايريده بالتنسيق الذي يريده ..

وطرحت هذا الموضوع كدرس هنا لأنه لو مر معك أحد السكربتات مكتوب بالصيغة البديلة فإنك لن تحتار بإذن الله تعالى .. وأرجوا أن تكون الفكرة وصلت بإذن الله تعالى

نهاية الدرس الخامس .. وانتظروا الدرس السادس

وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 17-07-2007, 11:51 PM
رد مع اقتباس
مشرف قسم تطوير المنتديات
تاريخ التسجيل: Jun 2005-
#13 (permalink)  

الله يجزيك كل الخير موضوع اكثر من رائع كمل ربنا يوفقك






__________________
[Product] عرض اعلانات جوجل في اول مشاركه مثل سوالف سوفت

اسم الخدمة : ساعِد
نظام التذاكر : http://www.sa3ed.com/tickets/
رقم الجوال : 0020122902906
ahmed-samara غير متواجد حالياً   قديم 18-07-2007, 04:23 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Apr 2006-
#14 (permalink)  

اعجبني كثيرا الدرس الخامس لسهولة استخدام الدوال المذكورة
شكرا لك
كما اود من المشرفين تثبيت هذا الموضوع لتعم الفائدة






عبد الواحد البشيري غير متواجد حالياً   قديم 18-07-2007, 07:47 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#15 (permalink)  
التعامل مع المراجع References

الدرس السادس : التعامل مع المراجع References

من أكثر وأهم المفاهيم المستخدمة في php مايسمى بالمراجع أو الـ References ..

ماهي المراجع (References)؟

سأعطيك عزيزي القارئ تعريف بطريقتي

هي عبارة عن قيمة لها أكثر من متغير يشير إليها ..

طيب ياليت ياعبدالله عيد توضح بالأمثلة (ابشر.. )

كود PHP:
<?php
$x 
10;
?>
الآن إذا عدنا إلى التعريف فإن القيمة ستكون 10 والمتغير x ..

الآن كيف نستخدم المرجع لنشير إلى قيمة x ؟

لعمل متغير يعمل كمرجع لقيمة (متغير اخر) فإننا نستخدم علامة & كالتالي :

كود PHP:
<?php
$y 
=&$x;
?>
الآن أصبح x و y يشيرون إلى نفس القيمة التي هي 10 ..

الآن لو غيرنا في x أو في y فإن قيمة الأخر ستتغير تباعاً ... لاحظ مايلي ..

كود PHP:
<?php
$y 
3000;
echo 
$x;
?>
ستكون النتيجة هي

كود:
3000
والسبب أن x و y يشيرون إلى نفس القيمة أي أن تغيير أي أحد منهما فإن الأخير سيتغير تباعاً لذا لو قمنا بعمل مراجع كالتالي :


كود PHP:
<?php
$z
=&$x;
$r=&$x;
$c=&$x;
?>
فإن z,r,c أصبحت مراجع أيضاً أي إذا غيرنا في قيمة x أو y أو z أو r أو c فإن الجميع سيتغيرون لإنهم في الأصل يشيرون إلى نفس القيمة ومن هنا جاء التعريف الذي قلته في الأعلى أنها قيمة لها أكثر من متغير يشير إليها ...

لاحظ الآن ما يلي :


كود PHP:
<?php
$t 
400;
$s $t;
?>

ماتراه في الكود الذي في الأعلى مختلف تماماً عن المراجع والسبب أن علمة المساواة تعني (copy) أي نسخ القيمة أي أن t هو 400 و s هو 400 ولكن إذا غيرنا في أحدهما فإن الأخر لن يتغي والسبب أن كل منهما متغير ولكن كل منهما له قيمته الخاصة به

لذا لو غيرنا كما يلي :


كود PHP:
<?php
$s 
700;
echo 
$t;
?>
فلن يتغير شئ وستكون النتيجة كالتالي ...
كود:
400
تحذير : المراجع تقنية ممتازة وجيدة ومفيدة ولكن في نفس الوقت فهي خطيرة جداً والسبب في ذلك أنه يمكن أن تحدث معها تغييرات لم تكن في الحسبان فعلى سبيل المثال ربما أنت تتعامل مع متغيرين مراجع في ملفين مختلفين وعندما يتغير أحدهما فإنه سيؤثر على المتغير الموجود في الملف الأخر وهذا ما قد يتسبب في نتائج غير مرغوب بها


وأرجوا أن تكون الفكرة قد اتضحت ...

نهاية الدرس السادس .. وانتظروا الدرس السابع

وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 20-07-2007, 01:55 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2004-
#16 (permalink)  
تعريف دالة بداخل دالة

الدرس السابع : تعريف دالة بداخل دالة

المقصود بتعريف دالة داخل دالة هو أن تقوم بكتابة تعريف لدالة معينة وبداخل هذا التعريف تنشئ تعريف أخر لدالة أخرى ...

الآن افترض أنك تقوم بإستدعاء دالة بإسم myfunc وهذه الدالة ليس لها تعريف كالتالي :

كود PHP:
<?php
myfunc
();
?>
فإن المترجم سيصدر خطأ لعدم وجود تعريف للدالة ...

الآن لو قمنا بكتابة مايلي :


كود PHP:
<?php
function myfunc()
{
 
// do somthing...
}
?>
فالآن لو ك***ا ..


كود PHP:
<?php
myfunc
();
?>

فإن الأمور ستسير على مايرام والسبب أن مترجم php استطاع التعرف على الدالة من خلال التعريف الذي ذكرناه ..


الآن لاحظ مايلي :

كود PHP:
<?php
function foo() 
{
  function 
bar() 
  {
    echo 
"I don't exist until foo() is called.\n";
  }
}

?>
هذا مانقصد به تعريف دالة داخل دالة فلقد عرفنا دالة بإسم foo وعرفنا بداخلها دالة بإسم bar ..

ولكن هنا مشكلة للتوضيح ..

الآن مترجم php يعلم فقط بوجود الدالة foo فقط أي لو كتبت ما يلي :

كود PHP:
<?php
bar
();
?>
فإنه سيصدر خطأ يخبرك فيه أن الدالة bar غير معرفة !!!

إذا كيف أستخدم الدالة bar ؟

في حقيقة الآمر سيتم التعرف على الدالة bar في حال استدعيت الدالة foo فقط كالتالي :


كود PHP:
<?php
foo
();
?>
الآن عندما نفذ مترجم php هذه الدالة فإنه وجد بداخلها تعريف لدالة أخرى وعندها سيتعرف على الدالةbar التي بداخل foo ويجعلها متاحة للإستخدام...

أي بكلام أخر لا تستطيع إستدعاء الدالة التي بالداخل(bar) حتى تستدعي الدالة التي تحتويها (foo)(الدالة التي بالخارج) ..
فالآن لو عملنا التالي ..
كود PHP:
<?php
bar
();
?>
فإن الأمور ستسير على مايرام ...

وإليك المثال بالكامل ...

كود PHP:
<?php
function foo() 
{
  function 
bar() 
  {
    echo 
"I don't exist until foo() is called.\n";
  }
}

/* We can't call bar() yet
   since it doesn't exist. */

foo();

/* Now we can call bar(),
   foo()'s processesing has
   made it accessible. */

bar();

?>
وأرجوا أن تكون الفكرة قد اتضحت ...

نهاية الدرس السابع .. وانتظروا الدرس الثامن

وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...

اخوكم عبدالله عيد






__________________
قال صلى الله عليه وسلم (كلمتان خفيفتان على اللسان ثقيلتان في الميزان (سبحان الله وبحمده ** سبحان الله العظيم) اوكما قال صلى الله عليه وسلم . (فهل هذه الكلمتان ثقيلتان على لسانك كي لا تقولها مرة واحدة في اليوم على الأقل)
عبدالله عيد غير متواجد حالياً   قديم 20-07-2007, 02:18 PM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Feb 2004-
#17 (permalink)  

الله يجزاك خير اخوي عبدالله على هذه الدروس القيمة


تقبل تحياتي






__________________
بي اتش بي العرب : php-ar.com
دروس PHP خاص : phpfaq.php-ar.com
البلوق العربي : ar-blog.net
مدونتي : naifphp.net
خدمات البرمجة : naifphp.org

جريح سابقا :)
Mr.php-ar غير متواجد حالياً   قديم 21-07-2007, 08:31 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2007-
#18 (permalink)  

اخي عبدالله عيد بارك الله فيك يالغالي ،،

وحبيت أشارك بإقتراح ربما يكون مفيداً في نظري و يسهل من الفهم اكثر،،

اكثر الذين يقومون بالشرح لا يذكرون مثال بسيط على الدرس او العنصر المشروح مثلاً أخونا محمد الرحيلي بارك الله فيه قام بشرح هذه اللغه بأسلوب مشوق ومبسط حيث في احد دروسه قام بشرح الشرطية if ووضح ذلك بمثال مبسط من فائدة عملها واستخداماتها قال :

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

قام مشكوراً بربطنا بالواقع مع هذا المثال ..

انا حبيت إنك توضح فقط " متغير متغير في php " $$ متى يفيدنا أستخدامها وما الغرض منها ؟؟

وياليت يكون بقيه الشرح كذلك باااااااااااااااااااااارك الله فيك كلنا آذان صاغيه لك يامعلمي شكراً لك عزيزي وآسف على الإطالة ،،






Abo-Ahmed غير متواجد حالياً   قديم 22-07-2007, 01:21 AM
رد مع اقتباس
عضو فعال جدا
تاريخ التسجيل: Jun 2003-
#19 (permalink)  

جزاك الله خير






__________________
إميل سعودي مجاني

htaccess بكل بساطة

الشفرة الموحدة "يونِكود"

(إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي
jadweb.com غير متواجد حالياً   قديم 22-07-2007, 01:53 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2007-
#20 (permalink)  

جزاك الله خيراً أخي عبد الله دروس أكتر من ممتازه






__________________
و بحمد الله تم الانتهاء من برمجة دليل المواقع بلس 1
http://www.links.l-7n.com

إيجي بلس لخدمات برمجة المواقع
http://egyplus.org
حازم علي غير متواجد حالياً   قديم 22-07-2007, 11:57 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Apr 2006-
#21 (permalink)  

يعطيك العافية اخوي عبدالله عيد دروس ممتازة وراح استفيد منها كثير

شكراً لك وبارك الله فيك وبعلمك ..






ابو عابد غير متواجد حالياً   قديم 23-07-2007, 03:26 AM
رد مع اقتباس
Moderator
تاريخ التسجيل: Feb 2007-
#22 (permalink)  

كتب الله اجرك اخي عبدالله وبانتظار القادم .






__________________
موقعي الشخصي
www.Flasher.ws

جزيرة الفنون
www.Artsisland.net
Flasher غير متواجد حالياً   قديم 25-07-2007, 04:28 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Oct 2003-
#23 (permalink)  

جزاكك الله خيرا اخي الفاضل ونرجو الاستمرار في دروسك القيمة






__________________
سبحان الله وبحمده سبحان الله العظيم

العضوية يستخدمها اكثر من شخص
Nabeel A. Galal
Hawk Eye
nabeel.galal AT hotmail.com
hawkeye غير متواجد حالياً   قديم 26-07-2007, 01:46 PM
رد مع اقتباس