রিটার্ন ব্যবহার করার সময় আপনার কী সুইচ ব্রেক দরকার?


110

আমি ভাবছিলাম যে "রিটার্ন" ব্যবহার করার সময় "সুইচ" ফাংশনে আমার "ব্রেক" ব্যবহার করা উচিত কিনা?

function test($string)
{
  switch($string)
  {
    case 'test1':
      return 'Test 1: ' . $string;
    case 'test2':
      return 'Test 2: ' . $string;
  }
}

আমি এটি চেষ্টা করেছি এবং এটি "বিরতি" ছাড়াই ঠিকঠাক কাজ করে। তবে এটি নিরাপদ কিনা তা আমার জানা দরকার। ধন্যবাদ.


1
happen স্ট্রিং = 'টেস্টেক্স' হলে কী হবে;
জগদীশন

উত্তর:


132

হ্যাঁ, আপনি এর returnপরিবর্তে ব্যবহার করতে পারেন break...

breakalচ্ছিক এবং এটি অন্যান্য সমস্ত বিবৃতিতে " পতন " রোধ করতে ব্যবহৃত হয় case। সুতরাং returnএকই ফ্যাশনে ব্যবহার করা যেতে পারে, returnফাংশন সম্পাদন শেষ হয়।

এছাড়াও, যদি আপনার সমস্ত caseবিবৃতি এরকম হয়:

case 'foo':
   $result = find_result(...);
   break;

এবং switchআপনার সবেমাত্র বিবৃতি দেওয়ার পরে return $result, return find_result(...);প্রতিটিটিতে ব্যবহার করা caseআপনার কোডটিকে আরও বেশি পঠনযোগ্য করে তুলবে।

শেষ অবধি, defaultকেস যুক্ত করতে ভুলবেন না । যদি আপনি ভাবেন যে আপনার কোডটি কখনই defaultমামলায় পৌঁছাবে না তবে আপনি assertফাংশনটি ব্যবহার করতে পারবেন কারণ আপনি কখনই নিশ্চিত হতে পারবেন না।


আপনাকে ধন্যবাদ লুজিন, আমি যা ভেবেছিলাম
EMC

16

আপনার একটি বিরতি লাগবে না, রিটার্নটি ফাংশনটি সম্পাদন বন্ধ করে দেয়।

(রেফারেন্সের জন্য: http://php.net/manual/en/function.return.php বলেছেন:

যদি কোনও ফাংশন থেকে কল করা হয়, রিটার্ন () বিবৃতিটি তত্ক্ষণাত বর্তমান ফাংশনটির সম্পাদন শেষ করে

)


4

এটির প্রয়োজনীয় নয়, কারণ কী শব্দটি ফিরে আসার সময় এটি নির্দেশ করবে যে নির্দিষ্ট ফাংশনটি যা স্যুইচ / কেস বলা হয়েছিল তা শেষ হয়ে গেছে an


3

না, আপনি একটি প্রয়োজন হবে না breakএকটি switch caseবিবৃতি। breakআসলে ঐচ্ছিক, কিন্তু সতর্কতার সাথে ব্যবহার করুন।


2

আপনার এটির দরকার নেই, তবে আমি দৃ strongly়ভাবে এটির ব্যবহারটি যে কোনও ক্ষেত্রেই ভাল অনুশীলন হিসাবে করার পরামর্শ দেব।


6
কোনও অর্থ নেই, যেহেতু এটির মাধ্যমে রিটার্নটি স্পষ্টভাবে উপস্থিত রয়েছে =) কম কোড ভাল।
ইএমসি

7
কম কোড! = আরও ভাল কোড গল্ফ খেলুন। আমি বরং ওড-অপ্টিমাইজড কোডের চেয়ে সুস্পষ্ট কোডের পাঠযোগ্য, স্পষ্ট কোড চাই যাতে এটি পঠনযোগ্যতা এবং বোধগম্যতার ব্যয়ে এক লাইনে থাকতে পারে।
মার্টিন বিন

3
আপনি এই উভয় উপায়ে তর্ক করতে পারেন। কিছু সংকলক একটি স্যুইচ ফিরে আসার পরে এক্সিকিউটেবল কোড সম্পর্কে সতর্ক করে, কিছু না। এটি ব্যক্তিগত পছন্দ, এবং আমার পক্ষে কমপক্ষে এটি রঙিন যে আমি একটি সুইচ দিয়ে পড়ে কতবার কামড়েছি, আমি বিরতি দেখতে চাই।
হ্যারি

2

ব্রেক হ'ল একটি সতর্কতা বিবৃতি যা সুইচ স্টেকচারের নিয়ন্ত্রণকে অন্য কোনও মামলায় যেতে সীমিত করতে ব্যবহৃত হয় ... উদাহরণস্বরূপ যদি আপনার কাছে তিনটি কেস স্টেটমেন্ট থাকে এবং মান প্রথম ক্ষেত্রে হয় এবং আপনি কোনও বিরতি কাঠামো ছাড়াই কেস ব্যবহার করেছেন তবে নিম্নলিখিত সমস্ত ক্ষেত্রে শর্তটি কেবল প্রথম ক্ষেত্রে সন্তুষ্ট হওয়া সত্ত্বেও মৃত্যুদন্ড কার্যকর করা হবে ... রিটার্ন অ্যাসেম ফাংশনটি সম্পাদন করতে পারে তাই আপনি বিরতির জায়গায় রিটার্নটি ব্যবহার করলে কোনও সমস্যা হবে না কারণ রিটার্নটি স্যুইচ কেস স্টেটমেন্ট থেকে দূরে থাকবে take এই মুহূর্তে যা প্রয়োজন ...... আশা করি এটি সাহায্য করবে ....


1

রিটার্ন নিয়ন্ত্রণটি কলিং পদ্ধতিতে ফিরিয়ে দেয়, যেখানে বিরতিটি সুইচ ব্লকের পরে প্রথম নির্দেশে যায়।

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