পিএইচপি-তে বিবৃতি দিলে কোনওভাবেই ভাঙ্গতে পারে?


129

পিএইচপি-তে কি কোনও আদেশ আছে যা বর্তমান বা পিতামাতার ifবিবৃতিটি কার্যকর করা বন্ধ করে দেয় / এর মতোই breakবা এর break(1)জন্য । উদাহরণ স্বরূপswitchloop

$arr=array('a','b');
foreach($arr as $val)
{
  break;
  echo "test";
}

echo "finish";

উপরের কোডে পিএইচপি করবে না echo "test";এবং যাবেecho "finish";

আমার যদি এটির দরকার হয়

$a="test";
if("test"==$a)
{
  break;
  echo "yes"; // I don't want this line or lines after to be executed, without using another if
}
echo "finish";

আমি চাই উপরে বিবৃতি এবং স্টপ নির্বাহ বা এই ধরনের কোডের যা আর কার্যকর করা প্রয়োজন হয়, সেখানে হতে পারে অথবা একটি অতিরিক্ত শর্ত নাও হতে পারে, এই কাজ করতে সেখানে উপায় নেই?breakifecho "yes";

আপডেট: এই প্রশ্নটি পোস্ট করার ঠিক 2 বছর পরে, আমি বড় হয়েছি, শিখেছি কীভাবে কোড ছোট ছোট খণ্ডে লেখা যেতে পারে, কেন বাসা বেঁধে থাকতে পারে যদি কোডের গন্ধ হতে পারে এবং কীভাবে প্রথমে ব্যবস্থাপনযোগ্য, ছোট ফাংশনগুলি লিখে এ জাতীয় সমস্যা এড়ানো যায়।


15
আপনার উদাহরণগুলির কোনওটিই যুক্তিযুক্তভাবে কোনও ধারণা দেয় না।
টিম পিটজ্যাকার

1
@ উসমান: যদি শর্ত না থাকে তবে echo(আপনার উদাহরণে) কখনই কার্যকর করা হবে না । সুতরাং আপনি পাশাপাশি এটি মুছে ফেলতে পারেন।
অলিভার চার্লসওয়ার্থ


প্রথমে আমি ভেবেছিলাম টিম কেবল অসভ্য ... তবে তারপরে আমি ভেবেছিলাম সে সঠিক ... নিঃশর্ত বিরতির পিছনে আপনার কোনও কোড থাকবে কেন? ডিবাগ? আমি চালিয়ে যাওয়া ছাড়া লুপগুলি ভাঙতে পছন্দ করি; এবং "সবেমাত্র এখানে থামুন" কমান্ড দিয়ে খুব কঠিন প্রশ্নগুলি ভেঙে দেওয়া ভাল লাগবে ...if (condition) { if ( oneothercondition ) stop; if ( yetothercondition ) stop; // go ahead , all is fine }
জোয়ারি

@ জোয়েরি আমি মুহাম্মাদের প্রাথমিক ধারণাগুলি জানি না কেন তার বিরতি দরকার ছিল; তবে আমার ক্ষেত্রে এখন এটি ডিবাগিং উদ্দেশ্যগুলি, ঠিক আছে। কিছু ক্ষেত্রে এটি সময় বাঁচাতে পারে। ব্রেকপয়েন্টগুলি যুক্ত করতে সক্ষম না হওয়ার ক্ষেত্রে (যখন কোনও আইডিই ব্যবহার না করা এবং / অথবা কোনও কারণে কোনও লাইভ সাইটে কাজ করতে হবে ইত্যাদি ইত্যাদি)
ভিক্টর বোরিটস

উত্তর:


216

অন্যান্য ব্যবহারকারীর মন্তব্য সম্পর্কে চিন্তা করবেন না, এই "অভিনব" জিনিসগুলির বিকাশ করার সময় আমি আপনাকে বুঝতে পারি OM । যদি আমরা একটি যদি ভাঙ্গতে পারি তবে অনেকগুলি নেস্টেড আইফএসের প্রয়োজন হবে না, কোডটিকে আরও পরিষ্কার এবং নান্দনিক করে তোলে।

এই নমুনা কোডটি ব্যাখ্যা করে যে সংস্থাগুলি যেখানে ভাঙ্গা হয়েছে সেখানে যদি অনেক কুৎসিত নেস্টেড আইফএসের চেয়ে আরও বেশি উপযুক্ত হতে পারে ... আপনি যদি নির্দিষ্ট পরিস্থিতির মুখোমুখি না হন তবে এর অস্তিত্ব নেই বলে বোঝায় না

কুৎসিত কোড

if(process_x()) {

    /* do a lot of other things */

    if(process_y()) {

         /* do a lot of other things */

         if(process_z()) {

              /* do a lot of other things */
              /* SUCCESS */

         }
         else {

              clean_all_processes();

         }

    }
    else {

         clean_all_processes();

    }

}
else {

    clean_all_processes();

}

ভাল চেহারা কোড

do {

  if( !process_x() )
    { clean_all_processes();  break; }

  /* do a lot of other things */

  if( !process_y() )
    { clean_all_processes();  break; }

  /* do a lot of other things */

  if( !process_z() )
    { clean_all_processes();  break; }

  /* do a lot of other things */
  /* SUCCESS */

} while (0);

যেমন @ নিমাতোজাক টমাসস বলেছেন, এর ব্যবহারটি gotoএকটি বিকল্প, এ সম্পর্কে খারাপ জিনিসটি আপনাকে সর্বদা লেবেলটি নির্ধারণ করতে হবে (পয়েন্ট লক্ষ্য)।


29
গ্রেট! অনেক সময় তাদের গভীর বোধের কারণে প্রশ্নগুলি ভুল বোঝে। আপনি এটি নিখুঁতভাবে পেয়েছেন, ট্র্যাকিংয়ের শেষ এড়াতে আমার পরিষ্কার কোড দরকারif
মুহাম্মদ উসমান

4
আমার প্রতিটি সফল পরীক্ষার পরে একই কোড কার্যকর করতে হবে (প্রায় 3 বা 4 টি পরীক্ষা), এবং elseifপ্রতিটি ব্যর্থ পরীক্ষায় একটি করা উচিত । ঠিক এটিই আমি অনুসন্ধান করছিলাম, এখন আমার কোডটি KISS এবং DRY অনুগত :) ধন্যবাদ!
s3v3n

3
মানুষ এই নোংরা বোধ করে! তবে এটি আমার উপকার পেয়েছে .. আমি একটি নোংরা সিস্টেমে কাজ করছি;)
লিওনার্ডচ্যালিস

8
@rdlowrey, কথাবার্তা নিখরচায়, সুতরাং দয়া করে ওপি প্রশ্ন সমাধানের জন্য আমাদের "
সু

7
নমুনার অনুরোধটিকে ব্যক্তিগত আক্রমণগুলিতে বিভ্রান্ত করবেন না ... আসলে, আপনি গুরুত্বপূর্ণ কিছু অনুপস্থিত, সমস্ত কোডিং ওওপি হওয়া উচিত নয়, এটি ওওপির ম্যাজিক * এর সাথে সহজ কাজগুলি লেখার জন্য একটি পাগল জিনিস।
বয়সহীন উপস্থিতি

98

একটি ফাংশন আপনার কোড encapsulate। আপনি returnযে কোনও সময় কোনও ক্রিয়াকলাপ সম্পাদন বন্ধ করতে পারেন ।


2
আমি যদিও আপনি যদি একটি চান, একটি ফাংশন না? ;)
আরনাউড লে ব্ল্যাঙ্ক

3
@ arnaud576875 কোডটি যদি কোনও ফাংশনে থাকে তবে আপনি যদি কার্য সম্পাদন ভাঙার জন্য if স্টেটমেন্টের রিটার্ন ব্যবহার করতে পারেন।
ম্যাক্সিম ক্রিজানোভস্কি

1
একটি ক্রিয়াকলাপের "1 উপায় ইন" এবং "1 আউট ওয়ে" হওয়া উচিত। একাধিক রিটার্নি হ'ল স্থির এবং ত্রুটির প্রবণ।
ওল্ড ম্যান ওয়াল্টার

@ ওल्डম্যানওয়াল্টার এটি কেবল আসল তথ্য ফেরত দেওয়ার ক্ষেত্রে সত্য। তবে ত্রুটি পরিচালনা করা এই নিয়মের একটি সাধারণ ব্যতিক্রম। একাধিক স্থানে একটি থ্রো ব্যতিক্রম বা প্রত্যাবর্তন মিথ্যা মানসিকতার বিরুদ্ধে রক্ষা করার চেষ্টা করছে এমন সাধারণ ক্ষতিগুলিকে "1 উপায়, 1 উপায়" মান না দিয়ে পুরোপুরি গ্রহণযোগ্য।
ড্যানিয়েলসন 317

41

এটি করার সঠিক উপায়:

try{
    if( !process_x() ){
        throw new Exception('process_x failed');
    }

    /* do a lot of other things */

    if( !process_y() ){
        throw new Exception('process_y failed');
    }

    /* do a lot of other things */

    if( !process_z() ){
        throw new Exception('process_z failed');
    }

    /* do a lot of other things */
    /* SUCCESS */
}catch(Exception $ex){
    clean_all_processes();
}

কিছু মন্তব্য পড়ার পরে, আমি বুঝতে পারি যে ব্যতিক্রম হ্যান্ডলিং সর্বদা স্বাভাবিক প্রবাহ নিয়ন্ত্রণের জন্য অর্থবোধ করে না। সাধারণ নিয়ন্ত্রণ প্রবাহের জন্য "অন্যথায় যদি" ​​ব্যবহার করা ভাল:

try{
  if( process_x() && process_y() && process_z() ) {
    // all processes successful
    // do something
  } else {
    //one of the processes failed
    clean_all_processes();
  }
}catch(Exception ex){
  // one of the processes raised an exception
  clean_all_processes();
}

আপনি ভেরিয়েবলগুলিতে প্রক্রিয়া ফেরতের মানগুলিও সংরক্ষণ করতে পারেন এবং তারপরে ব্যর্থতা / ব্যতিক্রম ব্লকগুলি পরীক্ষা করতে পারেন যা প্রক্রিয়াটি ব্যর্থ হয়েছে।


1
ব্যতিক্রমগুলি এই ক্ষেত্রে কার্যকর হতে পারে তবে মনে হয় আপনি তাদের অপব্যবহার করেছেন। ব্যতিক্রমগুলি ব্যতিক্রমী, সাধারণ প্রোগ্রাম প্রবাহের জন্য নয়। যদি ব্যর্থতা ব্যতিক্রমী হয় তবে প্রক্রিয়া_ x-z ব্যতিক্রমটি নিজেই ফেলে দেওয়া উচিত; ক্লিন_ল_প্রসেসস () শেষ অবধি ভাল হতে পারে যেহেতু এটি পরিষ্কার হয়ে যায় যা যাইহোক করা উচিত।
জিমি টি।

আমি সমাধানটি উন্নত করেছি।
রাহুল রঞ্জন

আমি অবশেষে ব্যবহার না করার কারণটি হ'ল, এটি পিএইচপি 5.5 পর্যন্ত সমর্থনযোগ্য নয়
রাহুল রঞ্জন

20

যেহেতু আপনি কোনও ডো / যখন লুপটি ভেঙে ফেলতে পারেন , আসুন আমরা এক দফা " করি "। একটি সঙ্গে যখন (মিথ্যা) শেষে শর্ত সত্য না হয় এবং আবার পুনরাবৃত্তি যাবে না।

do
{
    $subjectText = trim(filter_input(INPUT_POST, 'subject'));
    if(!$subjectText)
    {
        $smallInfo = 'Please give a subject.';
        break;
    }

    $messageText = trim(filter_input(INPUT_POST, 'message'));
    if(!$messageText)
    {
        $smallInfo = 'Please supply a message.';
        break;
    }
} while(false);

কেউ আপনাকে বলে না যে এটি অবশ্যই ব্যবহার করা উচিত। এটি "ব্রেক" করা কেবল উদাহরণ।
মার্কাস জেলার

2
পরিপাটি পদ্ধতির - কাজ করে।
বেনজামিনহুল

16

গোটো :

এতে যান অপারেটর প্রোগ্রামে আরেকটি অধ্যায় ঝাঁপ ব্যবহার করা যাবে। লক্ষ্য বিন্দুটি একটি কোলন অনুসরণ করে একটি লেবেল দ্বারা নির্দিষ্ট করা হয়, এবং নির্দেশটি পছন্দসই লক্ষ্যবস্তু লেবেলের পরে গোটো হিসাবে দেওয়া হয় । এই পূর্ণ অবাধ নয় এতে যান । টার্গেট লেবেলটি অবশ্যই একই ফাইল এবং প্রসঙ্গে থাকা আবশ্যক, যার অর্থ আপনি কোনও ফাংশন বা পদ্ধতি থেকে বেরিয়ে যেতে পারবেন না, আপনি কোনওটিতেও ঝাঁপিয়ে উঠতে পারবেন না। আপনি কোনও ধরণের লুপ বা স্যুইচ স্ট্রাকচারের মধ্যেও লাফাতে পারবেন না। আপনি এগুলি থেকে লাফিয়ে উঠতে পারেন এবং একটি সাধারণ ব্যবহার হ'ল বহু-স্তরের বিরতির জায়গায় একটি গোটো ব্যবহার করা ...


82
যতবার আপনি ব্যবহার করবেন goto, শিশু যিশু একটি বিড়ালছানা খান। এছাড়াও, xkcd.com/292

12
ধারাবাহিক থাকার জন্য দুঃখিত। আমি উল্লিখিত কীওয়ার্ডের সঠিক ব্যবহারের ব্যাখ্যা করে পিএইচপি ম্যানুয়াল পৃষ্ঠাটি উল্লেখ করেছি। এমনকি এটি নোংরা সমাধান হলেও এটি এখনও সঠিক সমাধান।
নিয়ামাতাজাক টমাসজ

3
আমি ঠিক বুঝতে পারি না কীভাবে এটি করা ভাল অনুশীলন নয়? এটি অন্যান্য সমস্ত সমাধানের চেয়ে অনেক বেশি সহজ?
538 রোমো

1
সাবাস্তেইনের সাথে একমত কিছু ক্ষেত্রে, গোটো অপারেটরটি খুব দরকারী এবং সহজ।
জেরি

6
চিন্তা করবেন না, প্রোগ্রামাররা সর্বদা আপনাকে অনুভব করবে যে আপনি ঠিক মতো কোডিং করছেন না এবং আমরা তাদের মতো কোড করতে চাই। এটি পিএইচপি সম্প্রদায়ের ক্ষেত্রে আরও সত্য কারণ আমরা হিপস্টার কোডারদের একগুচ্ছ এবং পিএইচপি আমাদের এই স্বাধীনতার কীওয়ার্ডগুলি এবং প্রত্যেকে কীভাবে কীভাবে কাজ করে সে সম্পর্কে বিচারযোগ্য হওয়ার স্বাধীনতা দেয়। আমি gotoপ্রোডাকশন কোডগুলিতে কীওয়ার্ডটি (ব্যাপকভাবে নয়) ব্যবহার করেছি এবং আমার কখনও ঝামেলা হয়নি।
vdegenne

7

কমান্ড বিদ্যমান: goto

if(smth) {
   .....
   .....
   .....
   .....
   .....
   goto Area1;
   .....
   .....


}



Area1:
....your code here....

তবে মনে রাখবেন gotoএকটি প্রস্তাবিত অনুশীলন নয়, কারণ এটি কোডটি অস্বাভাবিকভাবে ফর্ম্যাট করতে দেয়।


1
আমি এই স্ক্রিপ্টটি পরীক্ষা করেছি, গোতো এরিয়া 1 এর নীচের কোডটি; কার্যকর করা হবে না।
লিওন আর্মস্ট্রং


5

না, যদি আপনার লুপের ভিতরে থাকে তবে "ব্রেক" করার কোনও উপায় নেই। :(
সুতরাং আপনার পরীক্ষাটি একটিতে পরিণত করুন switch!

আমি অবাক হয়েছি কেন কেউ আপনাকে সুইচ স্টেটমেন্ট ব্যবহার করতে উত্সাহিত করেনি (এমনকি যদি আপনার অনেক পরীক্ষার ক্ষেত্রে
না ঘটে ) আপনার কি মনে হয় এটি খুব ভার্জোজ?

আমি অবশ্যই এখানে এটি জন্য যেতে হবে

  switch($a){
    case 'test':
        # do stuff here ...
        if(/* Reason why you may break */){
           break; # this will prevent executing "echo 'yes';" statement
        }
        echo 'yes';  # ...           
        break; # As one may already know, we might always have to break at the end of case to prevent executing following cases instructions.
    # default:
        # something else here  ..
        # break;
  }

আমার কাছে ব্যতিক্রমগুলি ত্রুটি বাড়াতে এবং বাস্তবায়নের ত্রুটিগুলি নিয়ন্ত্রণ করতে নয় control
আপনি যে বিরতি আচরণটি সেট করার চেষ্টা করছেন তা যদি অপ্রত্যাশিত ত্রুটি (গুলি) সম্পর্কে না হয় তবে ব্যতিক্রম হ্যান্ডলিংটি এখানে সঠিক সমাধান নয় :/


আকর্ষণীয় ধারণা কিন্তু আমি এটি "বাস্তব" কোডের জন্য ব্যবহার করব না।
জিমি টি।

1
"রিয়েল", আপনার মানে কি? :/
স্টাফেন

1
@ স্টাফেন দেরী করে মন্তব্য করেছেন, তবে এই পরিস্থিতিতে একটি পরিবর্তন ব্যবহার করা কমপক্ষে অবাক হওয়ার নীতির বিপরীতে। একটি স্যুইচ স্টেটমেন্টটি প্রোগ্রামের প্রবাহকে নিয়ন্ত্রণ না করে ডেটা নির্বাচন নিয়ন্ত্রণ করতে পারে।
এফডাব্লুডেকার

« সুইচটি বিভিন্ন মানের সাথে একটি অভিব্যক্তি তুলনা করে এবং এক্সপ্রেশনটির সমান মানের উপর নির্ভর করে কোডের একটি নির্দিষ্ট ব্লক কার্যকর করে» তারপরে প্রতিটি ব্লক সাবসিডিয়ারি এক্সপ্রেশনগুলির মূল্যায়ন করতে পারে যা ফলশ্রুতিতে কার্যকর কার্যকর প্রবাহকে ফিরে আসতে বা কিছু নির্দেশনা এড়িয়ে যেতে পারে ... আমি মনে করি না যে এই স্যুইচটি এই সঙ্কীর্ণ ইউজকেসে কমপক্ষে বিস্মিত হওয়ার নীতিটির বিরুদ্ধে যাবে তবে, এটি বলেছে, মূল প্রসঙ্গ এবং প্রয়োজনীয়তাগুলির জন্য অবশ্যই কিছু সংশোধনকারী প্রয়োজন হতে পারে।
স্টাফেন

4
$a = 1;

switch($a) {

  case "1":

    if  ($condition1){
      break;
    }

    if  ($condition2){
      break;
    }

    if  ($condition3){
      break;
    }
}

এইভাবে আমি যা চাই তা পেয়েছি। আমি কেবল একটি স্যুইচ ব্যবহার করি তার একটি নির্দিষ্ট কেস থাকে এবং তারপরে শর্তটি বেছে নেওয়ার ক্ষেত্রে ব্রেক ব্যবহার করুন। যে কারণে আমি ব্রেকটি ব্যবহার করি: কন্ডিশন 1 এবং শর্ত 2 উভয়ই সন্তুষ্ট করতে পারে, সেই পরিস্থিতিতে কেবল শর্ত 1 প্রয়োগ করা হয়।


8
এর জন্য আপনার ভেরিয়েবলের দরকার নেই। কেবলমাত্র ব্যবহার করুনswitch(true) { case true:
ম্যাক্সিম ক্রিজানোভস্কি

1

না।

তবে কীভাবে:

$a="test";
if("test"==$a)
{
  if ($someOtherCondition)
  {
    echo "yes";
  }
}
echo "finish";

3
ধন্যবাদ, তবে, আমি খুব বেশি ifবক্তব্য এড়াতে এটির একটি সহজ সংস্করণ খুঁজছি
মুহাম্মদ উসমান

2
@ উসমান: আপনার যদি একাধিক শর্ত থাকে তবে আপনার সেগুলি পরীক্ষা করা দরকার। একটি শর্ত পরীক্ষা করা traditionতিহ্যগতভাবে একটি ifবিবৃতি জড়িত । আপনি কীভাবে এড়াতে পারবেন তা আমি নিশ্চিত নই।
অলিভার চার্লসওয়ার্থ

1

যে কোডটি else/elseifশাখায় মৃত্যুদন্ড কার্যকর করার কথা নয় তা কেবল সরিয়ে ফেলুন। আপনি যা করতে চাইছেন তা কেন করতে চান তা আমি সত্যিই দেখছি না।


1

এর সহজ উত্তরটি হ'ল না, ifকার্যকরভাবে সম্পূর্ণরূপে বন্ধ না করে (মাধ্যমে exit) কোনও বিবৃতি থেকে বিরতি দেওয়ার কোনও উপায় নেই । অন্যান্য সমাধানগুলি আমার পক্ষে কাজ করবে না কারণ আমি ifবিবৃতিটির কাঠামো পরিবর্তন করতে পারছি না , যেহেতু আমি কোডটি একটি প্লাগইনে ইনজেক্ট করছি, যেমন:

if ( condition ) {
  // Code and variables I want to use

  // Code I have control over

  // Code I don't want to run
}
// More code I want to use

0

এটি অর্জনযোগ্য কিনা তা আপনার প্রশ্নের উত্তরের উত্তর, তবে হ্যাঁ পিএইচপিএইচ এর "গোটো" অপারেটরটি ব্যবহার করে তা অর্জনযোগ্য।

তবে নীতিগতভাবে, এটি "গোটো" ব্যবহার করা ভাল অভ্যাস নয় এবং এর জন্য গোটো ব্যবহারের কোনও প্রয়োজন নেই তার অর্থ এই যে কোডটির পুনর্গঠন করা দরকার যে গোটোর প্রয়োজনীয়তা অপসারণ করা যেতে পারে।

উপরে পোস্ট করা নমুনা কোড অনুসারে, স্পষ্টভাবে দেখা যাবে যে কোডটি পুনর্গঠন করা যায় এবং যে কোডটি আর প্রয়োজন হয় না তা মুছে ফেলা বা মন্তব্য করা যায় (যদি ভবিষ্যতে ব্যবহারের সম্ভাবনা থাকে তবে)।


0
$arr=array('test','go for it');
$a='test';
foreach($arr as $val){
  $output = 'test';
  if($val === $a) $output = "";
  echo $output;
}
echo "finish";

আপনার বিবৃতি সংমিশ্রণ, আমি মনে করি এটি আপনাকে আপনার পছন্দসই ফলাফল দেবে। খুব বেশি বিবৃতি না দিয়ে পরিষ্কার এবং সহজ।

কুৎসিত এবং সুদর্শন কোডের জন্য, আমার পুনরুদ্ধারটি হ'ল:

function myfunction(){
  if( !process_x() || !process_y() || !process_z()) {
    clean_all_processes();  
    return; 
  }
/*do all the stuff you need to do*/
}

কোথাও আপনার সাধারণ কোড

myfunction();

0

আমি মনে করি আপনি এটি সন্ধান করছেন:

if (condition) { 
    if ( oneothercondition ) continue;  
    if ( yetothercondition ) continue; 

    // go ahead , all is fine
}

পিএইচপি ম্যানুয়াল forউদাহরণগুলি দেখায় তবে আমি মনে করি এটি এর জন্যও কার্যকর হয়if


-1

আমি অনেক পরিবর্তন ছাড়াই একটি সহজ সমাধান আছে। প্রাথমিক বিবৃতি হল

আমি উপরের if স্টেটমেন্টটি ভেঙে ইকো "হ্যাঁ" চালানো বন্ধ করতে চাই; বা এই জাতীয় কোডগুলি যা এখন সম্পাদন করার প্রয়োজন নেই, সেখানে একটি অতিরিক্ত শর্ত থাকতে পারে এবং নাও হতে পারে, এটি করার কোনও উপায় আছে কি?

সুতরাং, এটি সহজ বলে মনে হচ্ছে। এই মত কোড চেষ্টা করুন।

$a="test";
if("test"==$a)
{
  if (1==0){
      echo "yes"; // this line while never be executed. 
      // and can be reexecuted simply by changing if (1==0) to if (1==1) 
  }
}
echo "finish";

আপনি যদি এই কোডটি ছাড়া চেষ্টা করতে চান তবে এটি সহজ simple এবং আপনি যখন চান ফিরে আসতে পারেন। অন্য সমাধান মন্তব্য ব্লক হয়। অথবা কেবল অন্য বিচ্ছিন্ন কোডে ভাবতে চেষ্টা করুন এবং চেষ্টা করুন এবং কেবলমাত্র আপনার চূড়ান্ত কোডের ফলাফল অনুলিপি করুন। এবং যদি কোনও কোড আর প্রয়োজনীয় নয়, আপনার ক্ষেত্রে ফলাফল হতে পারে

$a="test";
echo "finish";

এই কোড সহ, মূল বিবৃতি সম্পূর্ণ সম্মানিত হয় .. :) এবং আরও পঠনযোগ্য!


-2

সহজ সমাধানটি এটিকে মন্তব্য করা।

$a="test";
if("test"==$a)
{

  //echo "yes"; //no longer needed - 7/7/2014 - updateded bla bla to do foo
}

সংযুক্ত সুবিধাটি হ'ল আপনার আসল কোডটি পরিবর্তন না করা এবং আপনি এটি তারিখ করতে পারেন, এটি শুরু করতে পারেন এবং এর কারণ রাখতে পারেন।

নীচে ভোট কেন, ওপি অনুরোধ অনুসারে আমি মনে করি এটি একটি সঠিক বৈধ সমাধান।

"আমি [উপরের এই বিবৃতিটি ভেঙে]] ইকো" হ্যাঁ "চালানো বন্ধ করতে চাই; বা এই জাতীয় কোডগুলি যেগুলি কার্যকর করার প্রয়োজন হয় না, সেখানে একটি অতিরিক্ত শর্ত থাকতে পারে বা নাও হতে পারে, এটি করার উপায় আছে কি?"

আসলে কেউ এক বছর পরের অন্যান্য সমাধানগুলির দিকে নজর রাখতে পারে এবং ভাবছে যে সেখানে কী চলছে। আমার পরামর্শ অনুসারে, কেউ ভবিষ্যতের রেফারেন্সের জন্য ভাল ডকুমেন্টেশন রেখে যেতে পারে, যা সর্বদা ভাল অনুশীলন।


2
এটি সমস্যার সমাধান করে না। বিরতিও যদি একটি হতে পারে।
জিমি টি।

আপনি যদি একটি বিবৃতিতে মন্তব্য করতে পারবেন না? বা একটি মন্তব্য? আপনার অর্থ কী কার্যকর করা বাদ দিলে? যদি তাই বিরতির বিন্দু কি তারপর, বিবৃতি জন্য যদি হয় না? শুধু যে মন্তব্যও। দুঃখিত, তবে আপনার বক্তব্যটি দেখুন না।
আর্টিস্টিকফিনিক্স

এর মতো কিছু: ক: যদি ("পরীক্ষা" == $ এ) {... যদি (...) ব্রেক a; ...}
জিমি টি।

-3

টেরিনারি অপারেটর ব্যবহার সম্পর্কে কী?

<?php
 // Example usage for: Ternary Operator
 $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
?>

কোনটি যদি এটির অনুরূপ তবে / অন্য বিবৃতিতে:

<?php
 if (empty($_POST['action'])) {
   $action = 'default';
 } else {
   $action = $_POST['action'];
 }
?>

পিএইচপি 7 তে:$a = $_POST['action'] ?? 'default';
টোবিয়াস

-3

স্ক্রিপ্টের বাকী অংশটি পুরোপুরি বন্ধ করতে আপনি কেবল পারেন

থেকে প্রস্থান; // বিরতির জায়গায়। কোডের বাকী অংশ কার্যকর হবে না


-4

আমি পার্টিতে দেরি করেছি তবে আমি অবদান রাখতে চেয়েছিলাম। আমি অবাক হয়েছি যে কেউ পরামর্শ দেয়নি exit()। এটি পরীক্ষার জন্য ভাল। আমি এটি সর্বদা ব্যবহার করি এবং কবজির মতো কাজ করি।

$a ='';
$b ='';
if($a == $b){
echo 'Clark Kent is Superman';
exit();
echo 'Clark Kent was never Superman';
}

কোডটি থামবে exit()এবং তার পরে সমস্ত কিছুই চলবে না।

ফলাফল

Clark Kent is Superman

এটা দিয়ে কাজ করে foreach()এবং while()হিসাবে ভাল। আপনি এটি যে কোনও জায়গায় রাখুন এটি এটি কাজ করে works

foreach($arr as $val)
{
  exit();
  echo "test";
}

echo "finish";

ফলাফল

nothing gets printed here.

এটি দিয়ে ব্যবহার করুন forloop()

for ($x = 2; $x < 12; $x++) {
    echo "Gru has $x minions <br>";
    if($x == 4){
    exit();
    }
}

ফলাফল

Gru has 2 minions
Gru has 3 minions
Gru has 4 minions

একটি সাধারণ ক্ষেত্রে

$a ='Make hot chocolate great again!';
echo $a;
exit();
$b = 'I eat chocolate and make Charlie at the Factory pay for it.';

ফলাফল

Make hot chocolate great again!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.