পার্লে 'আমার' এবং 'আমাদের' মধ্যে পার্থক্য কী?


188

আমি জানি myপার্ল কি আছে। এটি একটি পরিবর্তনশীল সংজ্ঞায়িত করে যা কেবলমাত্র ব্লকের স্কোপে যেখানে এটি সংজ্ঞায়িত হয় সেখানে বিদ্যমান। কি করে our?

কীভাবে ourআলাদা my?

উত্তর:


215

দুর্দান্ত প্রশ্ন: কীভাবে ourআলাদা হয় myএবং কী করে our?

সংক্ষেপে:

পার্ল 5-এর পরে উপলব্ধ, প্যাকেজবিহীন myভেরিয়েবলগুলি ঘোষণার একটি উপায় , তা হ'ল:

  • ব্যক্তিগত
  • নতুন
  • অ বিশ্বব্যাপী
  • কোনো প্যাকেজ থেকে আলাদা, যাতে পরিবর্তনশীল না পারেন আকারে ব্যবহার করা $package_name::variable


অন্যদিকে, ourভেরিয়েবলগুলি প্যাকেজ ভেরিয়েবল এবং এইভাবে স্বয়ংক্রিয়ভাবে:

  • গ্লোবাল ভেরিয়েবল
  • অবশ্যই ব্যক্তিগত নয়
  • অগত্যা নতুন নয়
  • করতে যেমন, প্যাকেজ (অথবা আভিধানিক সুযোগ) যোগ্যতাসম্পন্ন নামস্থান সঙ্গে বাহিরে অ্যাক্সেস করা যেতে $package_name::variable


এর সাথে একটি ভেরিয়েবল ourঘোষণার মাধ্যমে use strictটাইপ সতর্কতা বা সংকলন-সময় ত্রুটি না পেয়ে ভেরিয়েবলগুলি এগুলি ব্যবহার করার জন্য আপনাকে পূর্বনির্ধারিত করার অনুমতি দেয় । পার্ল ৫..6 সাল থেকে এটি অপ্রচলিতটিকে প্রতিস্থাপন করেছে use vars, যা কেবল ফাইল-স্কোপড ছিল এবং লেসিকালি স্কোপ করা হয়নি our

উদাহরণস্বরূপ, পরিবর্তনশীল জন্য নিয়মমাফিক, যোগ্যতাসম্পন্ন নাম $xভিতরে package mainহয় $main::x। ডিক্লেয়ারিং our $xআপনাকে $xঘোষণার সুযোগে, দণ্ড ছাড়াই খালি পরিবর্তনশীল (অর্থাত্ ফলস্বরূপ ত্রুটি ব্যতীত) ব্যবহার করার অনুমতি দেয় , যখন স্ক্রিপ্টটি ব্যবহার করেuse strict বা use strict "vars"। সুযোগটি এক, বা দুটি, বা আরও বেশি প্যাকেজ বা একটি ছোট ব্লক হতে পারে।


2
তাহলে কীভাবে আমাদের স্থানীয় থেকে আলাদা?
নাথান ফেলম্যান

17
@ নাথান ফেলম্যান, localভেরিয়েবল তৈরি করে না। এটি কোনওভাবেই myএবং সম্পর্কিত ourনয়। localঅস্থায়ীভাবে ভেরিয়েবলের মান ব্যাক আপ করে এবং এর বর্তমান মান সাফ করে।
ইকগামি

1
ourভেরিয়েবলগুলি প্যাকেজ ভেরিয়েবল নয়। এগুলি গ্লোবালি-স্কোপড নয়, লেক্সিকালি-স্কোপড ভেরিয়েবলগুলি কেবল myভেরিয়েবলের মতো । আপনি দেখতে পারেন যে নিম্নলিখিত প্রোগ্রামে: package Foo; our $x = 123; package Bar; say $x;। আপনি যদি কোনও প্যাকেজ ভেরিয়েবল "ডিক্লেয়ার" করতে চান তবে আপনার ব্যবহার করা দরকার use vars qw( $x );our $x;একটি সংক্ষিপ্ত-স্কোপযুক্ত ভেরিয়েবল ঘোষণা করে যা প্যাকেজটি ourসংকলিত হয়েছিল তার একই নামযুক্ত ভেরিয়েবলের সাথে যুক্ত হয় ।
ইকেগামি

60

কার্টম্যান এবং ওলাফুরের পার্লমঙ্কস এবং পার্লডোক লিঙ্কগুলি একটি দুর্দান্ত রেফারেন্স - নীচে আমার ক্র্যাকটি সংক্ষেপে দেওয়া হল:

myভেরিয়েবলগুলি বর্ণিতভাবে {}একই ফাইলে বা এর মধ্যে না থাকলে একই ব্লকের মধ্যে সংজ্ঞায়িত হয় {}। তারা একই লেজিকাল স্কোপ / ব্লকের বাইরে সংজ্ঞায়িত প্যাকেজগুলি / সাব্রোটাইনগুলি থেকে অ্যাক্সেসযোগ্য নয়।

ourভেরিয়েবলগুলি একটি প্যাকেজ / ফাইলের মধ্যে বিভক্ত হয় এবং যে কোনও কোড থেকে useবা অ্যাক্সেসযোগ্য requireযে প্যাকেজ / ফাইল - নাম বিরোধগুলি যথাযথ নেমস্পেস প্রিভেন্ড করে প্যাকেজগুলির মধ্যে সমাধান করা হয়।

কেবল এটিকে গোল করার জন্য, localভেরিয়েবলগুলি "গতিশীল" স্কোপযুক্ত হয়, myভেরিয়েবলগুলির থেকে পৃথক হয় যেগুলি একই ব্লকের মধ্যে ডাকা সাব্রোটাইনগুলি থেকেও অ্যাক্সেসযোগ্য।


" myভেরিয়েবলের জন্য +1 হ'ল লাইনিকভাবে স্কোপ করা হয় [...] একই ফাইলের মধ্যে না থাকলে {}"। ধন্যবাদ আমার জন্য এটি দরকারী ছিল।
জর্জি

48

একটি উদাহরণ:

use strict;

for (1 .. 2){
    # Both variables are lexically scoped to the block.
    our ($o);  # Belongs to 'main' package.
    my  ($m);  # Does not belong to a package.

    # The variables differ with respect to newness.
    $o ++;
    $m ++;
    print __PACKAGE__, " >> o=$o m=$m\n";  # $m is always 1.

    # The package has changed, but we still have direct,
    # unqualified access to both variables, because the
    # lexical scope has not changed.
    package Fubb;
    print __PACKAGE__, " >> o=$o m=$m\n";
}

# The our() and my() variables differ with respect to privacy.
# We can still access the variable declared with our(), provided
# that we fully qualify its name, but the variable declared
# with my() is unavailable.
print __PACKAGE__, " >> main::o=$main::o\n";  # 2
print __PACKAGE__, " >> main::m=$main::m\n";  # Undefined.

# Attempts to access the variables directly won't compile.
# print __PACKAGE__, " >> o=$o\n";
# print __PACKAGE__, " >> m=$m\n";

# Variables declared with use vars() are like those declared
# with our(): belong to a package; not private; and not new.
# However, their scoping is package-based rather than lexical.
for (1 .. 9){
    use vars qw($uv);
    $uv ++;
}

# Even though we are outside the lexical scope where the
# use vars() variable was declared, we have direct access
# because the package has not changed.
print __PACKAGE__, " >> uv=$uv\n";

# And we can access it from another package.
package Bubb;
print __PACKAGE__, " >> main::uv=$main::uv\n";

11

স্কোপিংয়ের সাথে মোকাবিলা করা পার্ল স্কোপিং বিধিগুলির একটি ভাল ওভারভিউ is এটি যথেষ্ট পুরানো ourযা পাঠ্যের মূল অংশে আলোচনা করা হয়নি। এটি শেষে নোটস বিভাগে সম্বোধন করা হয়েছে ।

নিবন্ধটি প্যাকেজ ভেরিয়েবল এবং ডায়নামিক স্কোপ এবং কীভাবে লেক্সিকাল ভেরিয়েবল এবং লেক্সিকাল স্কোপ থেকে পৃথক রয়েছে সে সম্পর্কে আলোচনা করে।


5

myস্থানীয় ভেরিয়েবলের জন্য ব্যবহৃত হয়, যেখানে ourবৈশ্বিক চলকগুলির জন্য ব্যবহৃত হয়।

পার্লের ভেরিয়েবল স্কোপিংয়ে আরও পড়ুন : মূল বিষয়গুলি


16
স্থানীয় এবং বিশ্বব্যাপী শব্দগুলির চারপাশে টসিং করতে সাবধান হন। যথাযথ পদগুলি লেক্সিকাল এবং প্যাকেজ। পার্লে আপনি সত্য গ্লোবাল ভেরিয়েবলগুলি তৈরি করতে পারবেন না, তবে কিছু ইতিমধ্যে $ _ এর মতো বিদ্যমান এবং স্থানীয় স্থানীয় মানের সাথে প্যাকেজ ভেরিয়েবলকে বোঝায় (স্থানীয় দ্বারা তৈরি), লেজিকাল ভেরিয়েবলগুলিকে নয় (আমার সাথে তৈরি)।
চস ওভেনস

${^Potato}বিশ্বব্যাপী। এটি যেখানে আপনি এটি ব্যবহার না করে একই পরিবর্তনশীলকে বোঝায়।
এমজেডি

5

আমি কখনই পার্লের লেজিক্যাল ডিক্লারেশন সম্পর্কে কিছু সমস্যার মুখোমুখি হয়েছি যা আমাকে গোলমেলে ফেলেছিল, যা এই প্রশ্নের সাথেও সম্পর্কিত, তাই আমি এখানে আমার সংক্ষিপ্তসারটি এখানে যুক্ত করছি:

1. সংজ্ঞা বা ঘোষণা?

local $var = 42;
print "var: $var\n";

আউটপুট হয় var: 42। তবে আমরা local $var = 42;কোনও সংজ্ঞা বা ঘোষণা কিনা তা বলতে পারিনি couldn't তবে এটি সম্পর্কে:

use strict;
use warnings;

local $var = 42;
print "var: $var\n";

দ্বিতীয় প্রোগ্রামটি একটি ত্রুটি ফেলবে:

Global symbol "$var" requires explicit package name.

$varসংজ্ঞায়িত হয় না, যার অর্থ local $var;কেবল একটি ঘোষণা! localকোনও ভেরিয়েবল ঘোষণা করার আগে , নিশ্চিত হয়ে নিন যে এটি আগে বৈশ্বিক চলক হিসাবে সংজ্ঞায়িত হয়েছে।

তবে কেন এই ব্যর্থ হবে না?

use strict;
use warnings;

local $a = 42;
print "var: $a\n";

আউটপুট হল: var: 42

কারণ $a, পাশাপাশি $b, পার্লে একটি বৈশ্বিক পরিবর্তনশীল পূর্ব-সংজ্ঞায়িত। সাজানোর কাজ মনে আছে ?

2. লেক্সিকাল বা গ্লোবাল?

পার্ল ব্যবহার শুরু করার আগে আমি একজন সি প্রোগ্রামার ছিলাম, সুতরাং লেক্সিকাল এবং গ্লোবাল ভেরিয়েবলের ধারণাটি আমার কাছে সোজা মনে হয়: এটি কেবল সিতে অটো এবং বাহ্যিক ভেরিয়েবলের সাথে মিলে যায় তবে ছোট পার্থক্য রয়েছে:

সি-তে, একটি বাহ্যিক ভেরিয়েবল হ'ল যে কোনও ফাংশন ব্লকের বাইরে সংজ্ঞায়িত একটি চলক। অন্যদিকে, একটি স্বয়ংক্রিয় চলক একটি ফাংশন ব্লকের ভিতরে সংজ্ঞায়িত একটি চলক। এটার মত:

int global;

int main(void) {
    int local;
}

পার্ল থাকাকালীন জিনিসগুলি সূক্ষ্ম:

sub main {
    $var = 42;
}

&main;

print "var: $var\n";

আউটপুট হয় var: 42$varএটি একটি ফাংশন ব্লকে সংজ্ঞায়িত হলেও গ্লোবাল ভেরিয়েবল! আসলে পার্লে, কোনও পরিবর্তনশীল ডিফল্টরূপে গ্লোবাল হিসাবে ঘোষিত হয়।

পাঠটি সর্বদা use strict; use warnings;একটি পার্ল প্রোগ্রামের শুরুতে যুক্ত করা হয়, যা প্রোগ্রামারকে লেসিকাল ভেরিয়েবলকে স্পষ্টভাবে ঘোষণা করতে বাধ্য করে, যাতে আমরা কিছুটা ভুলের কারণে মঞ্জুর না হয়ে যাই granted


["মনে রাখার [$ a এবং $ b]] সাজানোর" এখানে আরও রয়েছে] ( স্ট্যাকওভারফ্লো . com/ a/ 26128328 / 1028230 )। পার্ল কখনও আমাকে থামিয়ে দেয় না, আম্মু আমাকে অবাক করে দেয়।
ruffin

4

Perldoc আমাদের একটি ভাল সংজ্ঞা হয়েছে।

আমার বিপরীতে, যা উভয়ই চলকের জন্য সঞ্চয়স্থান বরাদ্দ করে এবং বর্তমান স্কোপের মধ্যে ব্যবহারের জন্য সেই স্টোরেজটির সাথে একটি সাধারণ নামকে সংযুক্ত করে, বর্তমান স্কোপের মধ্যে ব্যবহারের জন্য, আমাদের বর্তমান প্যাকেজে প্যাকেজ ভেরিয়েবলের সাথে একটি সাধারণ নামকে সংযুক্ত করে। অন্য কথায়, আমাদের আমাদের মতো স্কোপিংয়ের নিয়ম রয়েছে তবে অগত্যা কোনও পরিবর্তনশীল তৈরি করে না।


2

এটি কেবল কিছুটা প্রশ্নের সাথে সম্পর্কিত, তবে আমি কেবলমাত্র একটি (আমার কাছে) পার্ল সিনট্যাক্সের একটি অস্পষ্ট বিটটি আবিষ্কার করেছি যা আপনি "আমাদের" (প্যাকেজ) ভেরিয়েবলগুলির সাথে ব্যবহার করতে পারেন যা আপনি "আমার" (স্থানীয়) সাথে ব্যবহার করতে পারবেন না ভেরিয়েবল।

#!/usr/bin/perl

our $foo = "BAR";

print $foo . "\n";
${"foo"} = "BAZ";
print $foo . "\n";

আউটপুট:

BAR
BAZ

আপনি 'আমাদের' কে 'আমার' তে পরিবর্তন করলে এটি কাজ করবে না।


1
তাই না। vari foo $ {foo} {f 'foo'} $ {"foo"} সমস্ত পরিবর্তনশীল অ্যাসাইনমেন্ট বা dereferences করার জন্য একই কাজ করে। আমার কাজের জন্য উপরের উদাহরণটিতে আমাদের অদলবদল করা । আপনি সম্ভবত যা অনুভব করেছেন তা প্যাকেজ ভেরিয়েবল হিসাবে $ foo কে dereferences করার চেষ্টা করছিল, যেমন $ main :: foo বা $ :: foo যা কেবলমাত্র প্যাকেজ গ্লোবাল যেমন আমাদের সাথে সংজ্ঞায়িত হিসাবে কাজ করবে ।
মহাজাগতিক

কেবলমাত্র v5.20 ব্যবহার করে পুনরায় লিখেছেন, এবং এটি অবশ্যই আমার সাথে একই আউটপুট দেয় না (এটি বার বার প্রিন্ট করে))
মিশা গালে

1
আমার পরীক্ষা (উইন্ডোতে): perl -e "my $foo = 'bar'; print $foo; ${foo} = 'baz'; pr int $foo"আউটপুট: barbaz perl -e "my $foo = 'bar'; print $foo; ${"foo"} = 'baz'; print $foo"আউটপুট: barbaz perl -e "my $foo = 'bar'; print $foo; ${\"foo\"} = 'baz'; print $foo"আউটপুট: barbar সুতরাং আমার পরীক্ষায় আমি একই ফাঁদে পড়ে গিয়েছিলাম। $ oo foo $ $ foo এর সমান, বন্ধনী ব্যবহারের সময় বন্ধনীগুলি কার্যকর হয়। $ f "foo" actually আসলে $ main :: {} পর্যন্ত চেহারা যা মূল প্রতীক টেবিল, যেমন কেবল প্যাকেজ স্কোপযুক্ত ভেরিয়েবল থাকে contains
কসমিকনেট

1
main main "main :: foo"}, $ {":: foo"}, এবং $ main :: foo $ {"foo" as এর মতো} শর্টহ্যান্ড হ'ল প্যাকেজ সংবেদনশীল perl -e "package test; our $foo = 'bar'; print $foo; ${\"foo\"} = 'baz'; print $foo"কাজ, যেমন এই প্রসঙ্গে $ f "foo" now এখন test {"পরীক্ষা :: foo" to এর সমান} অ্যাডভান্সড পার্ল প্রোগ্রামিং বইয়ের মতো সিম্বল টেবিল এবং গ্লোবগুলির কিছু তথ্য রয়েছে। আমার আগের ভুলের জন্য দুঃখিত
কসমিকনেট

0
print "package is: " . __PACKAGE__ . "\n";
our $test = 1;
print "trying to print global var from main package: $test\n";

package Changed;

{
        my $test = 10;
        my $test1 = 11;
        print "trying to print local vars from a closed block: $test, $test1\n";
}

&Check_global;

sub Check_global {
        print "trying to print global var from a function: $test\n";
}
print "package is: " . __PACKAGE__ . "\n";
print "trying to print global var outside the func and from \"Changed\" package:     $test\n";
print "trying to print local var outside the block $test1\n";

এটি আউটপুট দেবে:

package is: main
trying to print global var from main package: 1
trying to print local vars from a closed block: 10, 11
trying to print global var from a function: 1
package is: Changed
trying to print global var outside the func and from "Changed" package: 1
trying to print local var outside the block 

স্ক্রিপ্টটি চালানোর চেষ্টা করার সময় "কড়া ব্যবহার করুন" ব্যবহার করে এই ব্যর্থতা পাবেন:

Global symbol "$test1" requires explicit package name at ./check_global.pl line 24.
Execution of ./check_global.pl aborted due to compilation errors.

দয়া করে কিছু ধরণের ব্যাখ্যা সরবরাহ করুন। এর মতো ডাম্পিং কোড খুব কমই যথাযথ বলে বিবেচিত হয়।
স্কট সলমার 12

সহজ কথায়: আমাদের (নাম সইস হিসাবে) স্ক্রিপ্টের যে কোনও জায়গা থেকে এই চলকটি (ফাংশন, ব্লক ইত্যাদি ...) ব্যবহার করার জন্য একটি পরিবর্তনশীল অবনতি, ডিফল্টরূপে প্রতিটি ভেরিয়েবল (ঘোষিত না হলে) "মূল" এর সাথে সম্পর্কিত প্যাকেজ, স্ক্রিপ্টে অন্য প্যাকেজ অস্বীকার করার পরেও আমাদের পরিবর্তনশীলটি ব্যবহার করা যেতে পারে। কোনও "ব্লক" বা "ফাংশনে ঘোষিত ক্ষেত্রে" আমার "পরিবর্তনশীল কেবল সেই ব্লক / ফাংশনে ব্যবহার করা যেতে পারে। যদি "আমার" ভেরিয়েবলটি কোনও ব্লকে বন্ধ না হিসাবে ঘোষিত হয়, তবে এটি স্ক্রিট, কোনও বদ্ধ ব্লক বা "আমাদের" ভেরিয়েবল হিসাবে কোনও ফাংশনে ব্যবহার করা যেতে পারে, তবে প্যাকেজ পরিবর্তিত হলে ব্যবহার করা যাবে না
লাভি বুচনিক

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

0

নিম্নলিখিত প্রোগ্রামটি ব্যবহার করার চেষ্টা করুন:

#!/usr/local/bin/perl
use feature ':5.10';
#use warnings;
package a;
{
my $b = 100;
our $a = 10;


print "$a \n";
print "$b \n";
}

package b;

#my $b = 200;
#our $a = 20 ;

print "in package b value of  my b $a::b \n";
print "in package b value of our a  $a::a \n";

এটি আমার এবং আমাদের মধ্যে পার্থক্য ব্যাখ্যা করে। আমার পরিবর্তনশীলটি কোঁকড়া ধনুর্বন্ধনী এর বাইরে সুযোগের বাইরে চলে যায় এবং আবর্জনা সংগ্রহ করা হয় তবে আমাদের পরিবর্তনশীল এখনও বেঁচে থাকে।
যুগদেব

-1
#!/usr/bin/perl -l

use strict;

# if string below commented out, prints 'lol' , if the string enabled, prints 'eeeeeeeee'
#my $lol = 'eeeeeeeeeee' ;
# no errors or warnings at any case, despite of 'strict'

our $lol = eval {$lol} || 'lol' ;

print $lol;

এই কোডটি বোঝানোর জন্য কী বোঝাতে চান আপনি ব্যাখ্যা করতে পারেন? ourআর myআলাদা কেন ? এই উদাহরণটি এটি কীভাবে দেখায়?
নাথান ফেলম্যান

-1

আসুন আমরা ভাবি যে একজন দোভাষী আসলে কী তা: এটি কোডের একটি অংশ যা মেমরির মধ্যে মূল্যবোধ সঞ্চয় করে এবং কোনও প্রোগ্রামের নির্দেশিকাগুলিকে সেই প্রোগ্রামগুলিতে নির্দেশ দেয় যা তাদের নামের দ্বারা সেই মানগুলিকে অ্যাক্সেস করে দেয় যা এই নির্দেশাবলীর অভ্যন্তরে নির্দিষ্ট করা আছে। সুতরাং, দোভাষীর বড় কাজ হ'ল অনুবাদকরা যে মূল্যবোধগুলি সঞ্চয় করে সেগুলি অ্যাক্সেস করতে সেই নির্দেশাবলীতে আমাদের কীভাবে নামগুলি ব্যবহার করা উচিত তার নিয়মকে গঠন করা।

"আমার" এর মুখোমুখি হওয়ার সময়, দোভাষীটি একটি লেজিকাল ভেরিয়েবল তৈরি করে: একটি নামযুক্ত মান যা দোভাষী কেবল একটি ব্লক কার্যকর করতে গিয়ে কেবল অ্যাক্সেস করতে পারে এবং কেবল সেই সিনট্যাকটিক ব্লকের মধ্যে থেকে। "আমাদের" এর মুখোমুখি হওয়ার সময়, দোভাষী একটি প্যাকেজ ভেরিয়েবলের একটি লেজিক্যাল ওরফে তৈরি করে: এটি একটি নামকে বেঁধে রাখে, যা অনুবাদককে তখন থেকে একটি লেজিকাল ভেরিয়েবলের নাম হিসাবে প্রক্রিয়া করার কথা বলা হয়, ব্লকটি শেষ না হওয়া অবধি প্যাকেজের মান হিসাবে একই নামের সাথে পরিবর্তনশীল।

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

সূত্র:

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