পিএইচপি, = & এ রেফারেন্স অ্যাসাইনমেন্ট অপারেটর


101

=&(সমান-অ্যাম্পারস্যান্ড) অ্যাসাইনমেন্ট অপারেটর পিএইচপি-তে কী করে ?

এটি অবচয় হয়?


এছাড়াও দেখুন স্ট্যাকওভারফ্লো.com / প্রশ্নগুলি / 3200009 ( এটির সদৃশ হিসাবে চিহ্নিত)
আর্টেফ্যাক্টো

উত্তর:


121

এটি অবচয় করা হয়নি এবং হওয়ার সম্ভাবনাও নেই। এটি স্ট্যান্ডার্ড উপায়, উদাহরণস্বরূপ, বিদ্যমান ডেটা অনুলিপি করার পরিবর্তে একটি অ্যারে বা অবজেক্ট মিরর পরিবর্তনগুলিতে অন্যটিতে করা অংশ।

এটিকে রেফারেন্স দ্বারা অ্যাসাইনমেন্ট বলা হয় , যা ম্যানুয়ালটির উদ্ধৃতি দিতে, "এর অর্থ হ'ল উভয় ভেরিয়েবল একই ডাটাতে নির্দেশ করে, এবং কোথাও কিছুই অনুলিপি করা হয় না"

শুধু হয় সঙ্গে অবচিত =&হয় "ফল নির্ধারণের newরেফারেন্স দ্বারা" পিএইচপি 5 , যা কোনো ধরনের বিভ্রান্তির উৎস হতে পারে। newরেফারেন্স অনুসারে স্বয়ংক্রিয়ভাবে বরাদ্দ করা হয়, সুতরাং &অনর্থক / অবমানিত হয় $o = &new C;তবে এতে থাকে না $o = &$c;


যেহেতু এটি অনুসন্ধান করা শক্ত, তাই মনে রাখবেন যে =&( অ্যাম্পারস্যান্ডের সমান ) সমান= & ( স্পেস অ্যাম্পারস্যান্ডের সমান ) এবং প্রায়শই এমন লেখা হয় যে এটি অন্যান্য ভেরিয়েবলের মতো $x = &$y['z'];বা $x = &$someVar( অ্যাম্পারস্যান্ড ডলার সাইন ভেরিয়েবলের নাম ) হিসাবে চলে। দস্তাবেজ থেকে সরলীকৃত উদাহরণ:

$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4

পিএইচপি ম্যানুয়ালটিতে রেফারেন্স দ্বারা বরাদ্দ করা সম্পর্কিত একটি বিশদ বিভাগের একটি সহজ লিঙ্ক এখানে । এই পৃষ্ঠাটি রেফারেন্সে একটি সিরিজের অংশ - পুরো সিরিজটি পড়তে এক মিনিট সময় লাগবে।


8
পার্শ্ব নোট পুনরায়: "যেহেতু এটি অনুসন্ধান করা শক্ত" : প্রতীকহাউন্ড ডটকম এই জাতীয় সামগ্রীর জন্য আপনার বন্ধু।
বিলেণোহ

1
@ বিলিন্নাহ বাহ! সিম্বহাউন্ডটি স্থায়ীভাবে আমার সরঞ্জামবক্সে যুক্ত করা হয়েছে।
প্যারাপ্লুয়েই

26

এটি দুটি ভিন্ন অপারেটর =সম্ভবত আপনি জানেন হিসাবে কাজ। এবং এর &অর্থ হল ভেরিয়েবলটি মানের পরিবর্তে রেফারেন্স দ্বারা অ্যাক্সেস করা উচিত।


60
আমি দুঃখিত তবে এটি খুব সরলবাদী। $ a = & $ b এর অর্থ হল চলক তৈরি করা $ একই জিনিসকে $ বি এই মুহুর্তে বোঝায়। এর পরে, $ a = 5; $ বি এর ফলস্বরূপ 5. বি থাকবে 5.. তবে রেফারেন্স লিঙ্কটি $ b = & $ xyz দ্বারা ভেঙে যেতে পারে; বা আনসেট ($ বি); কোন সময়ে $ এ একমাত্র চলক হবে যা জানে যে কোষটি কোথায় রয়েছে 5.. এছাড়াও এছাড়াও সতর্কতা অবলম্বন করুন যে আপনি যদি $ a ব্যবহার করে = & সেট করে থাকেন তবে আপনাকে অবশ্যই পরিবর্তন করতে = & পরের বার (বা আনসেট ($ এ)) ব্যবহার করতে হবে রেফারেন্স লিংক $ a, বিশেষত $ a = NULL; লিঙ্কটি ভাঙবে না, এটি কেবল 5 টি নাল দিয়ে প্রতিস্থাপন করবে;
ডোন

8
@ ডন: সম্প্রসারণের জন্য ধন্যবাদ। আমি বলতে পারি আপনি একজন সি প্রোগ্রামার।
আসফ

8
ডন যা বলে আমি দ্বিতীয়। তবে আমি বলব না এটি উপায়টি খুব সরল। আমি বলব এটি ভুল।
আর্টেফ্যাক্টো

@ আপনার সত্যিকারের উত্তর হিসাবে আপনার মন্তব্যটি পোস্ট করা উচিত।
আদম

6
$x = &$y['z'];

$y['z']এটি বিদ্যমান না থাকলে তৈরি করার এবং এটিতে সেট করার প্রভাবও রয়েছে null

এটি ত্রুটি বার্তাগুলি প্রতিরোধ করে যা আপনি পড়তে চেয়েছিলেন। আমি এটিতে এখনও কোনও ডকুমেন্টেশন পাইনি; সম্ভবত আমি জানি 5.3 এ নতুন।

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