এর মতো দুটি রিটার্ন সহ কোনও ফাংশন রাখা কি সম্ভব:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
যদি তা হয় তবে আমি কীভাবে আলাদাভাবে প্রতিটি রিটার্ন পেতে পারি?
এর মতো দুটি রিটার্ন সহ কোনও ফাংশন রাখা কি সম্ভব:
function test($testvar)
{
// Do something
return $var1;
return $var2;
}
যদি তা হয় তবে আমি কীভাবে আলাদাভাবে প্রতিটি রিটার্ন পেতে পারি?
উত্তর:
2 টি ভেরিয়েবল ফেরতের উপায় নেই। যদিও, আপনি একটি অ্যারে প্রচার করতে পারেন এবং এটি ফেরত দিতে পারেন; গতিশীল পরিবর্তনশীল ইত্যাদি ফিরিয়ে আনার জন্য শর্তসাপেক্ষ তৈরি করুন etc.
উদাহরণস্বরূপ, এই ফাংশনটি ফিরে আসবে $var2
function wtf($blahblah = true) {
$var1 = "ONe";
$var2 = "tWo";
if($blahblah === true) {
return $var2;
}
return $var1;
}
প্রয়োগে:
echo wtf();
//would echo: tWo
echo wtf("not true, this is false");
//would echo: ONe
আপনি যদি উভয়ই চাইতেন তবে আপনি ফাংশনটি কিছুটা সংশোধন করতে পারেন
function wtf($blahblah = true) {
$var1 = "ONe";
$var2 = "tWo";
if($blahblah === true) {
return $var2;
}
if($blahblah == "both") {
return array($var1, $var2);
}
return $var1;
}
echo wtf("both")[0]
//would echo: ONe
echo wtf("both")[1]
//would echo: tWo
list($first, $second) = wtf("both")
// value of $first would be $var1, value of $second would be $var2
wantarray()
প্রযুক্তিগতভাবে, আপনি একাধিক মান ফেরত দিতে পারবেন না। তবে এই সীমাবদ্ধতাটি ঘিরে কাজ করার একাধিক উপায় রয়েছে। একাধিক মান ফিরিয়ে দেওয়ার মতো উপায়টি কী-ওয়ার্ডের সাথে রয়েছে list
:
function getXYZ()
{
return array(4,5,6);
}
list($x,$y,$z) = getXYZ();
// Afterwards: $x == 4 && $y == 5 && $z == 6
// (This will hold for all samples unless otherwise noted)
প্রযুক্তিগতভাবে, আপনি একটি অ্যারে ফিরিয়ে দিচ্ছেন এবং list
সেই অ্যারের উপাদানগুলি প্রকৃত অ্যারে সংরক্ষণ করার পরিবর্তে বিভিন্ন মানগুলিতে সঞ্চয় করতে ব্যবহার করছেন। এই কৌশলটি ব্যবহার করে এটি একাধিক মান ফেরত দেওয়ার মতো বোধ করবে ।
list
সমাধান বরং একটি পিএইচপি-ভিত্তিক এক। একই কাঠামোগুলি সহ কয়েকটি ভাষা রয়েছে তবে আরও বেশি ভাষা রয়েছে। আরও একটি উপায় রয়েছে যা সাধারণত একাধিক মান "ফেরত" দিতে ব্যবহৃত হয় এবং এটি প্রায় প্রতিটি ভাষায় (এক উপায়ে বা অন্য কোনও ক্ষেত্রে) উপলভ্য। তবে, এই পদ্ধতিটি একেবারেই আলাদা দেখায় তাই কিছু অভ্যস্ত হওয়ার প্রয়োজন হতে পারে।
// note that I named the arguments $a, $b and $c to show that
// they don't need to be named $x, $y and $z
function getXYZ(&$a, &$b, &$c)
{
$a = 4;
$b = 5;
$c = 6;
}
getXYZ($x, $y, $z);
এই কৌশলটি এছাড়াও কিছু ফাংশন পিএইচপি নিজে সংজ্ঞায়িত ব্যবহার করা হয় (যেমন $count
মধ্যে str_replace , $matches
মধ্যে preg_match )। এটি একাধিক মান প্রত্যাবর্তন থেকে বেশ আলাদা মনে হতে পারে তবে কমপক্ষে এটি সম্পর্কে জানার পক্ষে এটি মূল্যবান।
তৃতীয় পদ্ধতিটি হ'ল আপনার প্রয়োজনীয় বিভিন্ন মানগুলি ধরে রাখতে কোনও অবজেক্ট ব্যবহার করা। এটি বেশি টাইপিং, সুতরাং এটি উপরের দুটি পদ্ধতির মতো প্রায়শই ব্যবহৃত হয় না। এটি বেশিরভাগ স্থানে একই ধরণের ভেরিয়েবল ব্যবহার করার সময় এটি ব্যবহার করা বোধগম্য হতে পারে (বা অবশ্যই এমন একটি ভাষায় কাজ করা যা উপরের পদ্ধতিগুলি সমর্থন করে না বা আপনাকে অতিরিক্ত টাইপিং ছাড়াই এটি করার অনুমতি দেয়)।
class MyXYZ
{
public $x;
public $y;
public $z;
}
function getXYZ()
{
$out = new MyXYZ();
$out->x = 4;
$out->y = 5;
$out->z = 6;
return $out;
}
$xyz = getXYZ();
$x = $xyz->x;
$y = $xyz->y;
$z = $xyz->z;
উপরের পদ্ধতিগুলি একটি ফাংশন থেকে একাধিক মান প্রত্যাবর্তনের প্রধান উপায়গুলি যোগ করে। তবে এই পদ্ধতিগুলির মধ্যে বিভিন্নতা রয়েছে। সর্বাধিক আকর্ষণীয় ভিন্নতাগুলি হ'ল সেগুলি হ'ল যা আপনি আসলে একটি অ্যারে ফিরিয়ে দিচ্ছেন, কেবলমাত্র পিএইচপি-তে অ্যারে সহ আপনি অনেক কিছু করতে পারবেন বলেই।
প্রথমত, আমরা কেবল একটি অ্যারে ফিরিয়ে দিতে পারি এবং এটিকে অ্যারে ব্যতীত অন্য কোনও হিসাবে বিবেচনা করি না:
function getXYZ()
{
return array(1,2,3);
}
$array = getXYZ();
$x = $array[1];
$y = $array[2];
$z = $array[3];
উপরের কোড সম্পর্কে সবচেয়ে আকর্ষণীয় অংশটি হ'ল ফাংশনের অভ্যন্তরীণ কোডটি আমার দেওয়া প্রথম উদাহরণের মতো; শুধুমাত্র ফাংশন কলিং কোড পরিবর্তন করা হয়েছে। এর অর্থ এই যে ফাংশনটি কল করে তার উপর নির্ভর করে কীভাবে ফাংশনটি ফিরে আসে ফলাফলকে কীভাবে আচরণ করবে।
বিকল্পভাবে, কেউ একটি মিশুক অ্যারে ব্যবহার করতে পারে:
function getXYZ()
{
return array('x' => 4,
'y' => 5,
'z' => 6);
}
$array = getXYZ();
$x = $array['x'];
$y = $array['y'];
$z = $array['z'];
পিএইচপি-তে এমন compact
ফাংশন রয়েছে যা আপনাকে উপরের মতো করার অনুমতি দেয় তবে কম কোড লেখার সময়। (ঠিক আছে, নমুনাতে কম কোড থাকবে না, তবে সম্ভবত একটি বাস্তব বিশ্বের অ্যাপ্লিকেশনটি হবে)) তবে আমি মনে করি টাইপিং সাশ্রয় করার পরিমাণটি ন্যূনতম এবং এটি কোডটি পড়তে আরও শক্ত করে তোলে, তাই আমি নিজে এটি করব না। তবুও, এখানে একটি নমুনা রয়েছে:
function getXYZ()
{
$x = 4;
$y = 5;
$z = 6;
return compact('x', 'y', 'z');
}
$array = getXYZ();
$x = $array['x'];
$y = $array['y'];
$z = $array['z'];
এটি লক্ষ্য করা উচিত যে এখানে কলিং কোডটি ব্যবহার করা যেতে পারে এমন compact
একটি প্রতিচ্ছবি রয়েছে extract
, তবে এটি ব্যবহার করা খারাপ ধারণা (যেহেতু এটি বিশেষত সহজ কিছু) আমি এটির জন্য একটি নমুনাও দেব না। সমস্যাটি হ'ল এটি "যাদু" করবে এবং আপনার জন্য ভেরিয়েবল তৈরি করবে, যখন আপনি কোডের অন্যান্য অংশে না গিয়ে কোন ভেরিয়েবল তৈরি করা যায় তা দেখতে পাচ্ছেন না।
অবশেষে, আমি উল্লেখ করতে চাই যে সত্যিই সাহসী অ্যারের সাথে ভাল খেলছে list
না । নিম্নলিখিত আপনি যা প্রত্যাশা করছেন তা করবে:
function getXYZ()
{
return array('x' => 4,
'y' => 5,
'z' => 6);
}
$array = getXYZ();
list($x, $y, $z) = getXYZ();
তবে, নিম্নলিখিতগুলি কিছু আলাদা করবে:
function getXYZ()
{
return array('x' => 4,
'z' => 6,
'y' => 5);
}
$array = getXYZ();
list($x, $y, $z) = getXYZ();
// Pay attention: $y == 6 && $z == 5
যদি আপনি list
কোনও এসোসিয়েটিভ অ্যারে ব্যবহার করে থাকেন এবং ভবিষ্যতে অন্য কাউকে ফোন ফাংশনে কোডটি পরিবর্তন করতে হয়েছে (যা কোনও পরিস্থিতিতেই ঘটতে পারে) এটি হঠাৎ করেই ভেঙে যেতে পারে, তাই আমি list
সহযোগী অ্যারেগুলির সাথে সম্মিলনের বিরুদ্ধে সুপারিশ করব ।
return array('x' => $x, 'y' => $y, 'z' => $z)
ক্লিনারটি খুঁজে পাব, তবে আমি নিজে যেখানে এটি লিখব সেই বিন্দুতে নয়, যেখানে আমি অন্যদের এই বিন্যাসটি ব্যবহার করতে বলব।
আপনার উদাহরণে, দ্বিতীয় রিটার্ন কখনই ঘটবে না - প্রথম রিটার্নটি হ'ল পিএইচপি চালানো সর্বশেষ জিনিস। যদি আপনাকে একাধিক মান ফেরত দিতে হয় তবে একটি অ্যারে ফিরিয়ে দিন:
function test($testvar) {
return array($var1, $var2);
}
$result = test($testvar);
echo $result[0]; // $var1
echo $result[1]; // $var2
list($result_1, result_2) = test($testvar);
result_2
বা $result_2
?
$result_2
পিএইচপি 7.1 সাল থেকে আমাদের তালিকাগুলির জন্য যথাযথ ধ্বংস রয়েছে । এর মাধ্যমে আপনি এই জাতীয় জিনিসগুলি করতে পারেন:
$test = [1, 2, 3, 4];
[$a, $b, $c, $d] = $test;
echo($a);
> 1
echo($d);
> 4
একটি ফাংশনে এটি দেখতে এই রকম হবে:
function multiple_return() {
return ['this', 'is', 'a', 'test'];
}
[$first, $second, $third, $fourth] = multiple_return();
echo($first);
> this
echo($fourth);
> test
ধ্বংস করা খুব শক্তিশালী একটি সরঞ্জাম। এটি কী => মান জোড়াও বিকাশ করতে সক্ষম:
["a" => $a, "b" => $b, "c" => $c] = ["a" => 1, "b" => 2, "c" => 3];
পিএইচপি 7.1 এর জন্য নতুন বৈশিষ্ট্য পৃষ্ঠাটি একবার দেখুন:
আমি জানি যে আমি বেশ দেরি করে ফেলেছি, তবে এই সমস্যার জন্য একটি দুর্দান্ত এবং সহজ সমাধান রয়েছে।
ডেস্ট্রাকচারিং ব্যবহার করে একবারে একাধিক মান ফেরত পাওয়া সম্ভব।
function test()
{
return [ 'model' => 'someValue' , 'data' => 'someothervalue'];
}
এখন আপনি এটি ব্যবহার করতে পারেন
$result = test();
extract($result);
extract
অ্যারেতে প্রতিটি সদস্যের জন্য একটি ভেরিয়েবল তৈরি করে, সেই সদস্যের নাম অনুসারে। আপনি এখন অ্যাক্সেস করতে পারেন $model
এবং$data
model
এবং data
) ইতিমধ্যে ভেরিয়েবল হিসাবে উপস্থিত নেই। যদি তারা তা করে তবে দ্বন্দ্ব এড়াতে prefix
প্যারামিটারটি ব্যবহার করুন extract
।
দুটি রিটার্নের বিবৃতি পাওয়া সম্ভব নয়। তবে এটি ত্রুটি ফেলে না তবে ফাংশনটি বলা হলে আপনি কেবল প্রথম রিটার্নের স্টেটমেন্টের মান পাবেন। বিনিময়ে একাধিক মান পেতে আমরা অ্যারের রিটার্ন ব্যবহার করতে পারি। উদাহরণ স্বরূপ:
function test($testvar)
{
// do something
//just assigning a string for example, we can assign any operation result
$var1 = "result1";
$var2 = "result2";
return array('value1' => $var1, 'value2' => $var2);
}
সংজ্ঞা অনুসারে ফাংশনগুলি কেবল একটি মান দেয়।
তবে, আপনি যেমন ধরে নিয়েছেন, সেই মানটি একটি অ্যারে হতে পারে।
সুতরাং আপনি অবশ্যই এর মতো কিছু করতে পারেন:
<?PHP
function myfunc($a,$b){
return array('foo'=>$a,'bar'=>$b);
}
print_r(myfunc('baz','bork'));
এটি বলেছিল, আপনি যে কোনওটি সমাধান করার চেষ্টা করছেন তার জন্য কিছুটা সময় নেওয়া এবং চিন্তা করা মূল্যবান। জটিল ফলাফলের মান (অ্যারে বা কোনও বস্তুর মতো) ফেরত দেওয়ার সময় পুরোপুরি বৈধ, আপনি যদি ভাবছেন যে "আমি দুটি মান ফিরিয়ে দিতে চাই", আপনি সম্ভবত নকশা করছেন be আপনার প্রশ্নে আরও বিশদ ছাড়া এটি বলা শক্ত, তবে কখনও থামতে এবং দু'বার ভাবতে কষ্ট দেয় না।
সেরা অনুশীলন হ'ল আপনার ফিরে আসা ভেরিয়েবলগুলিকে অ্যারেতে রাখুন এবং তারপরে list()
ভেরিয়েবলগুলিতে অ্যারের মান নির্ধারণের জন্য ব্যবহার করুন ।
<?php
function add_subt($val1, $val2) {
$add = $val1 + $val2;
$subt = $val1 - $val2;
return array($add, $subt);
}
list($add_result, $subt_result) = add_subt(20, 7);
echo "Add: " . $add_result . '<br />';
echo "Subtract: " . $subt_result . '<br />';
?>
পিএইচপি 7.1 এর জন্য <= আপনি নতুন সিনট্যাক্স ব্যবহার করতে পারেন ( তালিকার ফাংশনের পরিবর্তে ):
/**
* @return array [foo, bar]
*/
function getFooAndBar(): array {
return ['foo', 'bar'];
}
[$foo, $bar] = getFooAndBar();
print 'Hello '. $foo . ' and ' . $bar;
আপনি যদি 2-3 ভেরিয়েবলগুলি ফিরিয়ে দিতে চান তবে এটি আমার পক্ষে ঠিক আছে, অন্যথায় আপনার পছন্দসই বৈশিষ্ট্যযুক্ত কোনও জিনিস ব্যবহার করা উচিত।
আমি একাধিক রিটার্ন মান পিএইচপি ফাংশনের জন্য এর মতো বাস্তবায়ন করেছি। আপনার কোড সহ সুন্দর হতে। ধন্যবাদ.
<?php
function multi_retun($aa)
{
return array(1,3,$aa);
}
list($one,$two,$three)=multi_retun(55);
echo $one;
echo $two;
echo $three;
?>
উপরে যে সবুজ রঙের উত্তর দেওয়া হয়েছে তা আসলে ভুল। আপনি যদি কোনও অ্যারে ফিরিয়ে দেন তবে আপনি পিএইচপি-তে একাধিক মান ফিরিয়ে দিতে পারেন। উদাহরণের জন্য নিম্নলিখিত কোডটি দেখুন:
<?php
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
এই কোডটি আসলে পিএইচপি-র ওয়েবসাইটে নিম্নলিখিত পৃষ্ঠা থেকে অনুলিপি করা হয়েছে: http://php.net/manual/en/funitions.returning-values.php আমি নিজেও বহু বার একই ধরণের কোড ব্যবহার করেছি, তাই নিশ্চিত করতে পারি যে এটি ভাল এবং এটি কাজ করে।
পিএইচপি-র কার্যকারিতা কেবলমাত্র একটি পরিবর্তনশীল ফিরিয়ে দিতে পারে। আপনি বিশ্বব্যাপী স্কোপ সহ ভেরিয়েবলগুলি ব্যবহার করতে পারেন, আপনি অ্যারেটি ফিরে আসতে পারেন, বা আপনি ফাংশনটি উল্লেখ করে এবং পরিবর্তিত মানের চেয়ে ভেরিয়েবল পাস করতে পারেন, তবে সেগুলি আপনার কোডের পঠনযোগ্যতা হ্রাস করবে। আমি আপনাকে ক্লাসে সন্ধান করার পরামর্শ দিচ্ছি।
ভেবেছিলাম উপরে থেকে কিছু প্রতিক্রিয়ার উপর আমি প্রসারিত করব ....
class nameCheck{
public $name;
public function __construct(){
$this->name = $name;
}
function firstName(){
// If a name has been entered..
if(!empty($this->name)){
$name = $this->name;
$errflag = false;
// Return a array with both the name and errflag
return array($name, $errflag);
// If its empty..
}else if(empty($this->name)){
$errmsg = 'Please enter a name.';
$errflag = true;
// Return both the Error message and Flag
return array($errmsg, $errflag);
}
}
}
if($_POST['submit']){
$a = new nameCheck;
$a->name = $_POST['name'];
// Assign a list of variables from the firstName function
list($name, $err) = $a->firstName();
// Display the values..
echo 'Name: ' . $name;
echo 'Errflag: ' . $err;
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
<input name="name" />
<input type="submit" name="submit" value="submit" />
</form>
এটি আপনাকে একটি ইনপুট ক্ষেত্র এবং একবার জমা দেওয়ার বোতামটি দেবে, যদি নাম ইনপুট ক্ষেত্রটি খালি থাকে তবে এটি ত্রুটি পতাকা এবং বার্তাটি ফিরিয়ে দেবে। যদি নাম ক্ষেত্রটির মান থাকে তবে এটি মান / নাম এবং মিথ্যা = কোনও ত্রুটির জন্য 0 এর ত্রুটি পতাকা প্রদান করবে। আশাকরি এটা সাহায্য করবে!
আপনি সর্বদা কেবল একটি পরিবর্তনশীল ফিরিয়ে দিতে পারেন যা অ্যারে হতে পারে। তবে আপনি ফাংশনটির অভ্যন্তর থেকে গ্লোবাল ভেরিয়েবল পরিবর্তন করতে পারেন। এটি বেশিরভাগ সময় খুব ভাল স্টাইল নয় তবে এটি কাজ করে। ক্লাসে আপনি সাধারণত ফাংশন থেকে ক্লাসের ভেরিয়েবলগুলি ফিরিয়ে না দিয়ে পরিবর্তন করেন।
উত্তর না হয়। যখন পার্সার প্রথম রিটার্নের বিবৃতিতে পৌঁছায়, এটি কলিং ফাংশনে সরাসরি নিয়ন্ত্রণ করবে - আপনার দ্বিতীয় রিটার্নের বিবৃতি কখনই কার্যকর হবে না।
একটি অ্যারেতে সমস্ত ভেরিয়েবল যুক্ত করুন এবং তারপরে অবশেষে ফিরে আসুন array
।
function test($testvar)
{
// do something
return array("var1" => $var1, "var2" => @var2);
}
এবং তারপর
$myTest = test($myTestVar);
//$myTest["var1"] and $myTest["var2"] will be usable
আমি মনে করি এলিগো উত্তরটি পরিষ্কারভাবে ব্যাখ্যা করেছে। তবে আপনি যদি উভয় মানই ফিরিয়ে দিতে চান তবে এগুলিতে একটি অ্যারে রাখুন এবং এটি ফেরত দিন।
function test($testvar)
{
// do something
return array('var1'=>$var1,'var2'=>$var2);
//defining a key would be better some times
}
// রিটার্ন মানগুলি অ্যাক্সেস করতে
$returned_values = test($testvar);
echo $returned_values['var1'];
echo $returned_values['var2'];
$this
কীওয়ার্ডটি ব্যবহার করুন এখনও কোনও শ্রেণি বা বস্তুর উল্লেখ নেই। 2) আপনি আপনার পরিবর্তনশীল মধ্যে মান ফিরে যদি $returned_values
: তারপর আপনি যে পরিবর্তনশীল থেকে প্রতিধ্বনি উচিতecho $returned_values['var1'];
<?php
function foo(){
$you = 5;
$me = 10;
return $you;
return $me;
}
echo foo();
//output is just 5 alone so we cant get second one it only retuns first one so better go with array
function goo(){
$you = 5;
$me = 10;
return $you_and_me = array($you,$me);
}
var_dump(goo()); // var_dump result is array(2) { [0]=> int(5) [1]=> int(10) } i think thats fine enough
?>
যে ভাষাগুলি একাধিক রিটার্ন দেয় তা সাধারণত একাধিক মানকে ডেটা কাঠামোতে রূপান্তর করে।
উদাহরণস্বরূপ, পাইথনে আপনি একাধিক মান ফিরিয়ে দিতে পারেন। যাইহোক, তারা আসলে কেবল একটি টুপল হিসাবে ফিরে আসছেন।
সুতরাং আপনি কেবল একটি সাধারণ অ্যারে তৈরি করে এবং এটি ফিরিয়ে পিএইচপি-তে একাধিক মান ফিরিয়ে আনতে পারেন।
আপনি দুটি বা ততোধিক ভেরিয়েবলের মান রেফারেন্স দ্বারা সেট করে তাদের পেতে পারেন:
function t(&$a, &$b) {
$a = 1;
$b = 2;
}
t($a, $b);
echo $a . ' ' . $b;
আউটপুট:
1 2
এটি করার সহজ উপায় এটি:
public function selectAllUsersByRole($userRole, $selector) {
$this->userRole = $userLevel;
$this->selector = $selector;
$sql = "SELECT * FROM users WHERE role <= ? AND del_stat = 0";
$stm = $this->connect()->prepare($sql); // Connect function in Dbh connect to database file
$stm->execute([$this->userRole]); // This is PHP 7. Use array($this->userRole) for PHP 5
$usersIdArray = array();
$usersFNameArray = array();
$usersLNameArray = array();
if($stm->rowCount()) {
while($row = $stm->fetch()) {
array_push($usersIdArray, $row['id']);
array_push($usersFNameArray, $row['f_name']);
array_push($usersLNameArray, $row['l_name']);
// You can return only $row['id'] or f_name or ...
// I used the array because it's most used.
}
}
if($this->selector == 1) {
return $usersIdArray;
}elseif($this->selector == 2) {
return $usersFNameArray;
}elseif($this->selector == 3) {
return $usersLNameArray;
}
}
আমরা এই ফাংশনটি কীভাবে বলতে পারি?
$idData = $selectAllUsers->selectAllUsersByLevel($userRole, 0);
print_r($idData);
$idFName = $selectAllUsers->selectAllUsersByLevel($userRole, 1);
print_r($idFname);
এটাই. খুব সহজ.
আমারও অনুরূপ সমস্যা ছিল - তাই আমি চেষ্টা করেছি এবং কিছুটা গুগল করেছি (এই থ্রেডটি খুঁজে পাচ্ছি)। 5 মিনিটের চেষ্টা এবং ত্রুটির পরে আমি জানতে পেরেছিলাম যে আপনি কেবল দুটি ফিরতে "এবং" ব্যবহার করতে পারেন (সম্ভবত আরও - এখনও পরীক্ষিত নয়) রিটার্নের এক লাইনে।
আমার কোড:
function get_id(){
global $b_id, $f_id;
// stuff happens
return $b_id AND $f_id;
}
//later in the code:
get_id();
var_dump($b_id);
var_dump($f_id); // tested output by var_dump
এটা কাজ করে। আমি যে মূল্যবোধ প্রত্যাশা করেছি তা পেতে পেলাম / পাওয়া উচিত। আমি আশা করি যে এই থ্রেডটি পড়তে আমি কাউকে সহায়তা করতে পারি :)