Mr.Ajax
14-08-2009, 07:38 مساءً
السلام عليكم ورحمة الله وبركاته
الساده اعضاء مرسانا مرسى الفى بى
سنتحدث بموضوعنا عن معامل GOTO احدى اضافات php 5.3
بناء goto فى لغة php
جاء بناء goto فى لغة الphp عن طريق المطور Andrey Hristov الذى تبعة باهتمام مبدع لغة ال php المبرمج Rasmus Lerdorf مبدع لغة php
والذى كان على الرابط التالى : http://marc.info/?t=109106735500003&r=1&w=2
بدأت الفكره بمحاوله لصنع طريقة لتقليص تداخلات العبارات الشرطيه والتكرار :
do {
code
if ( error condition )
break;
code
if ( error condition )
break;
code
} while ( 0 );
cleanup codeوتداخلات if/elseif/else
لمتابعه سير عملية التطوير على الرابط التالى :
http://marc.info/?t=109106735500003&r=1&w=2
ما هو معامل goto
معامل goto ظهر بداية من اصدار php 5.3 بمعنى ان ما قبل ذلك فلا يمكن استخدامه
يتيح لك معامل goto ان تقوم بتجاوز الكتل البرمجية
فمثلا كمثال بسيط اكثر للتوضيح :
اذا كان المصعد لا يعمل
اذهب الى : السلم
واذا لم يكن
اذهب الى : المصعد
السلم : سنصعد السلم خطوه خطوه
المصعد : سنضغط على الزر وننتظر الوصولمثل هذا الحال فى لغة php
<?php
goto a;
echo 'Hello';
a:
echo 'Goodbye';
?>هنا سيتم طبع عبارة Goodbye
أمثله على استخدام goto
مثال من php.net :
<?php
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
?>اذا تتبعنا الكود البرمجى هنا سنجده يصنع حلقة تكرارية
ويضع شرط برمجى اذا كان المتغير J مساوى لل 17 سيقوم بتجاوز كلفة الكتل البرمجية
ويذهب الى بداية الكتلة البرمجيه التى تبدأ بالاشارة end ويبدأ التنفيذ من تلك النقطه
مثال اخر :
for ($i = 0; $i < 9; $i++)
{
if (true) {
break blah;
}
echo "not shown";
blah:
echo "iteration $i\n";
}اذا تتبعنا الكود البرمجى هنا سنجد حلقة تكرارية تبدأ من الصفر حتى 9
وشرط برمجى عند حدوثة سيقوم بالانتقال الى الكتله البرمجيه التى تبدأ بالكلمة blah
مصادر goto
http://www.php.net/goto
http://www.php.net/~derick/meeting-notes.html#adding-goto (http://www.php.net/%7Ederick/meeting-notes.html#adding-goto)
http://marc.info/?t=109106735500003&r=1&w=2
الى هنا نكون قد انتهيت من شرح معامل goto
وأتمنى أن أكون قد وفقت فى الشرح وأن اكون قد اضفت الى معلوماتكم ولو شئ بسيط
وأرجو حفظ حقوقى عند نقل الموضوع لمكان آخر
أدام الله أيامكم بالسعادة
مع تحياتى
Mr.Ajax:)
الساده اعضاء مرسانا مرسى الفى بى
سنتحدث بموضوعنا عن معامل GOTO احدى اضافات php 5.3
بناء goto فى لغة php
جاء بناء goto فى لغة الphp عن طريق المطور Andrey Hristov الذى تبعة باهتمام مبدع لغة ال php المبرمج Rasmus Lerdorf مبدع لغة php
والذى كان على الرابط التالى : http://marc.info/?t=109106735500003&r=1&w=2
بدأت الفكره بمحاوله لصنع طريقة لتقليص تداخلات العبارات الشرطيه والتكرار :
do {
code
if ( error condition )
break;
code
if ( error condition )
break;
code
} while ( 0 );
cleanup codeوتداخلات if/elseif/else
لمتابعه سير عملية التطوير على الرابط التالى :
http://marc.info/?t=109106735500003&r=1&w=2
ما هو معامل goto
معامل goto ظهر بداية من اصدار php 5.3 بمعنى ان ما قبل ذلك فلا يمكن استخدامه
يتيح لك معامل goto ان تقوم بتجاوز الكتل البرمجية
فمثلا كمثال بسيط اكثر للتوضيح :
اذا كان المصعد لا يعمل
اذهب الى : السلم
واذا لم يكن
اذهب الى : المصعد
السلم : سنصعد السلم خطوه خطوه
المصعد : سنضغط على الزر وننتظر الوصولمثل هذا الحال فى لغة php
<?php
goto a;
echo 'Hello';
a:
echo 'Goodbye';
?>هنا سيتم طبع عبارة Goodbye
أمثله على استخدام goto
مثال من php.net :
<?php
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
?>اذا تتبعنا الكود البرمجى هنا سنجده يصنع حلقة تكرارية
ويضع شرط برمجى اذا كان المتغير J مساوى لل 17 سيقوم بتجاوز كلفة الكتل البرمجية
ويذهب الى بداية الكتلة البرمجيه التى تبدأ بالاشارة end ويبدأ التنفيذ من تلك النقطه
مثال اخر :
for ($i = 0; $i < 9; $i++)
{
if (true) {
break blah;
}
echo "not shown";
blah:
echo "iteration $i\n";
}اذا تتبعنا الكود البرمجى هنا سنجد حلقة تكرارية تبدأ من الصفر حتى 9
وشرط برمجى عند حدوثة سيقوم بالانتقال الى الكتله البرمجيه التى تبدأ بالكلمة blah
مصادر goto
http://www.php.net/goto
http://www.php.net/~derick/meeting-notes.html#adding-goto (http://www.php.net/%7Ederick/meeting-notes.html#adding-goto)
http://marc.info/?t=109106735500003&r=1&w=2
الى هنا نكون قد انتهيت من شرح معامل goto
وأتمنى أن أكون قد وفقت فى الشرح وأن اكون قد اضفت الى معلوماتكم ولو شئ بسيط
وأرجو حفظ حقوقى عند نقل الموضوع لمكان آخر
أدام الله أيامكم بالسعادة
مع تحياتى
Mr.Ajax:)