• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بحث : چرا دستور GOTO به php 5.3 اضافه شد؟
#1
سلام دوستان .
به نظر خیلی از برنامه نویس ها دستور goto یک دستور بد شناخته شده
http://www.allegro.cc/forums/thread/589282
http://www.dreamincode.net/forums/showtopic74072.htm
و...
http://www.google.com/search?hl=en&rlz=1...=f&oq=&aqi=


حالا به نظر شما چرا . php در جدید ترین ورژنش اومده و Goto رو اضافه کرده ؟
php.net/goto

--------
به نظر من :

چون php برای حلقه ها و دستورات label نگذاشته goto میتونه این فقدان رو حل کنه
برای مثال در زبان قدرمند perl (که به نظر من برای الگوریتم نویسی بهترینه )
اگر شما 2 تا حلقه داشته باشید . می تونین از حلقه فرزند به حلقه پدر دسترسی داشته باشید مثلا حلقه پدر رو یک countinue جلو ببرید یا break کنید
مثال:
کد پی‌اچ‌پی:
LABEL:{
 
#Block Code
}

LABEL1:while(...){
    
LABEL2:while(...){
        if(
1==$i){
            
next LABEL1;
        }
    }

خب این قابلیت رو php نداره ولی شما می تونین با goto
این کارو شبیه سازی کنید

به این صورت
کد پی‌اچ‌پی:
for($i=0;$i<100;$i++){
    
FOR1:break;
    for(
$n=0;$n<100;$n++){
        if(
$n==50){
            goto 
FOR1;
        }
    }


در کل میشه گفت در php
goto تنها دستوری هستش که label داره

نظر شما چیه؟
  پاسخ
تشکر شده توسط : zoghal amir.s parvane molana
#2
هرچیزی که تو زبانهای برنامه نویسی اومده یه روزی یه جایی مفیدن
GOTO هم همینطور
یادمه تو زبان C اولین برنامه ای که نوشتم 4000 خطبود و توش همش از GOTO استفاده کرده بودم
ولی یه جاهایی GOTO خیلی به درد میخوره.
ممنون از اطلاع رسانی خوبتون
ایران PHP به همه عزیزانش میباله. از جمله شما دوست عزیز و فعالمون
Smile
علم تاج افتخار دنیا و یادگار پس از مرگ است
  پاسخ
تشکر شده توسط : k2-4u admin molana
#3
من هم همینطور یادم میاد یه بار توی هنرستان برای رو کم کنی با استفاده از Pascal یه کامپایلر نوشته بودم که به مراتب از GOTO استفاده کرده بودم که با توبیخ استاد مواجه شدم به دلیل اینکه هر چند کارایی رو بالا می بره اما نمی تونیم بگیم این کار گیج کننده نیست. البته بیشتر با روحیت بنده سازگار نیست
  پاسخ
تشکر شده توسط : zoghal molana


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان