⊗ppOpAdPBR 23 of 107 menu

PHP-তে OOP-তে রেফারেন্স দ্বারা অবজেক্ট পাস করা

ধরুন আমাদের এখানে User নামে একটি ক্লাস আছে:

<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

ধরুন আমরা এই ক্লাসের একটি অবজেক্ট তৈরি করি:

<?php $user = new User('john', 30); ?>

এখন নিম্নলিখিত পরিস্থিতি কল্পনা করুন: আপনি $user ভেরিয়েবলের মান অন্য কোনো ভেরিয়েবলে অ্যাসাইন করতে চান, যেমন $test

যদি অবজেক্টের পরিবর্তে প্রিমিটিভ টাইপ নিয়ে কথা হত, যেমন স্ট্রিং, নাম্বার, অ্যারে ইত্যাদি, তাহলে $test ভেরিয়েবলে $user ভেরিয়েবলের মানের একটি কপি যেত।

এর মানে হল যে, পরবর্তীতে যেকোনো একটি ভেরিয়েবল পরিবর্তন করলে অন্য ভেরিয়েবলের মান পরিবর্তন হত না। একটি উদাহরণ দেখা যাক:

<?php $user = 1; $test = $user; // $test ভেরিয়েবলে এখন 1 আছে $test = 2; // $test ভেরিয়েবলে এখন 2 আছে, কিন্তু $user-এ এখনও 1 আছে ?>

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

আসুন অনুশীলনে দেখি। ইউজার নিয়ে একটি অবজেক্ট তৈরি করি:

<?php $user = new User('john', 30); ?>

অবজেক্টটিকে অন্য একটি ভেরিয়েবলে অ্যাসাইন করি:

<?php $test = $user; ?>

$test ভেরিয়েবলে name প্রপার্টি পরিবর্তন করি

<?php $test->name = 'eric'; ?>

আসুন পরীক্ষা করে দেখি যে শেয়ারকৃত অবজেক্টটি পরিবর্তিত হয়েছে কিনা। $user ভেরিয়েবল থেকে name প্রপার্টি আউটপুট করি:

<?php echo $user->name; // আউটপুট দেবে 'eric'! ?>

একটি Product ক্লাস তৈরি করুন, যেখানে নিম্নলিখিত প্রপার্টি থাকবে: name, price

Product ক্লাসের একটি অবজেক্ট তৈরি করুন, এটিকে $product1 ভেরিয়েবলে লিখুন।

$product1 ভেরিয়েবলের মান $product2 ভেরিয়েবলে অ্যাসাইন করুন। পরীক্ষা করুন যে উভয় ভেরিয়েবল একই অবজেক্টকে রেফার করছে।

বাংলা
AfrikaansAzərbaycanБългарскиБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন