পিএইচপি আশা করে T_PAAMAYIM_NEKUDOTAYIM?


542

কারও কি আছে T_PAAMAYIM_NEKUDOTAYIM?


22
কখনও কখনও পিএইচপি-র এই উপায়টি যা বলার জন্য আপনি একটি $ চিহ্নটি মিস করছেন ... উদাহরণস্বরূপ যদি আপনি _S _SESSION ["foo"] এর পরিবর্তে সেসিশন ["foo"] লিখেন
গঞ্জো

131
ডাবল ডাবল কোলনের জন্য হিব্রু, কিন্তু ... দেখুন bugs.php.net/bug.php?id=14492 : " বিটিডাব্লু , পার্স ত্রুটিতে একটি বানান ভুল আছে, এটি টিপিএএমএআইএম_এনইকিউডিটিটাইম হওয়া উচিত (হিব্রুতে, 'ডাবল' ফর্মটি কেবলমাত্র মূল বিশেষ্য + 'আইয়াম' প্রত্যয় এবং 'নেকুদা' একক রূপ ['নেকুডোট' বহুবচন রূপ)]।
ওল্ফগ্যাং ফাহল

66
@ ওল্ফগাংফাহল আমি এই ত্রুটিটি ভুল বলে মনে করেছি তার সম্পর্কে কিছু জানতাম।
পিটার টার্নার

14
@ ওল্ফগাংফাহল বানান ভুল কেবল অনুপস্থিত u। এটা হওয়া উচিত T_PAAMAYIM_NEKUDOTAYIM। ( PAAMAYIM= "দ্বিগুণ", NEKUDOTAYIM= := "נקודותיים")
টম

15
আমি যখন এই ত্রুটিটি দেখলাম তখন আমি কেবল 30 সেকেন্ডের জন্য পর্দা ডাম্বস্ট্রাকের দিকে তাকিয়েছিলাম তখন হাসতে হাসতে ফেটে সিগারেটে ধূমপান করতে গেলাম: F 1+
n00b

উত্তর:


342

এটি ডাবল কোলন অপারেটর ::( পার্সার টোকেনগুলির তালিকা দেখুন )।


11
আসলে তা না. এটি পরীক্ষা করুনvar_dump(empty(TRUE))
মেশিনএডিক্ট

1
@ মাচিনেডিটিক্ট ভুল প্রশ্ন / উত্তর?
গম্বো

2
না I আমি ভুল করে খুঁজে পেয়েছি।
মেশিনাডিক্ট

6
@ ওয়েবে_ডাবলফার, এর কারণটি হ'ল কারণ যদি সিন্ট্যাক্টিক্যালি বৈধ বিবৃতি foreach($cats as catদেওয়ার পরে আপনার যদি কেবল একমাত্র গ্রহণযোগ্য চরিত্র থাকে তবে এটি আপনাকে কিছু শ্রেণীর স্থায়ী সম্পত্তি নির্দিষ্ট করার অনুমতি দেয় । উদাহরণস্বরূপ, ক্লাসে যদি সর্বজনীন স্থিতিশীল সদস্য বলা হয় , তবে এটি পুরোপুরি বৈধ , তবে এর পরে অন্য কোনও কিছু দিয়ে একটি বিবৃতি একটি সিনট্যাক্স ত্রুটি হবে। যদি আপনার ঘোষিত সম্পত্তি না হয় তবে মারাত্মক ত্রুটি পাওয়া যেত, তবে তবুও সিনট্যাক্স ত্রুটি হয় না। cat::catcat$mouseforeach($cats as cat::$mouse)php::cat$mousecat
মরিচ

2
var_dump (খালি (সত্য)), পিএইচপি 7.2
বুল

110

গুগল আশ্চর্য কাজ করে।

এটি "ডাবল কোলন" এর হিব্রু


3
@ মাট্টিভির্ককুনেন এমন কোন নতুন ভাষা যা কোনও ভাষায় কোনও ত্রুটি, কমিট, সিনট্যাক্স গ্রহণ করে? :) আমরা এটা করতে পারি.
হেক্টর

2
গুগল আমাকে এখানে এনেছে।
সুমিত

2
ইসরাইলিস পিএইচপি লিখেছেন :)
sd1sd1

@ এসডি 1 এসডি 1, হ্যাঁ, সম্ভবত জিভ লিখেছেন যে
পিটারচৌলা

53

এটি ::পিএইচপি- র অপারেটরের জন্য একটি নাম । এর আক্ষরিক অর্থ "ডাবল কোলন"। কোন কারণে তারা হিব্রু নামকরণ করেছিল। আপনার কোড বাক্য গঠন পরীক্ষা করুন, এবং একটি ::উপযুক্ত যেখানে রাখুন :-)


1
ফাংশনগুলি ইংরেজী ভাষায়, তবে সেই ত্রুটি হিব্রু ভাষায়। যদিও অন্য কোনও ত্রুটি হিব্রুতে রয়েছে তা আমি নিশ্চিত নই।
অ্যালেক্স

19
হাইলাইট স্ট্রিং להדגיש מחרוזת מחרוזת এখন থেকে, আমি অবশ্যই আমার কাস্টম অ্যারে_পুষ্প ফাংশনটি ব্যবহার করব Hebrew_מערך অবশ্যই হিব্রু অক্ষরে ._מערך। আমি নিশ্চিত যে আমার সমস্ত হিব্রু ভাষী সহকর্মীরা এটি পছন্দ করবে। আমাদের সমস্ত দেব দলের প্রায়শই কমপক্ষে একটি ভাষা লাতিন অক্ষরে লেখা written মজা করা উচিত :)
আইজাক

3
এটি হিব্রুতে থাকার কারণ হ'ল কোডটি ইস্রায়েলীয়রা লিখেছিল। আমি মনে করি না যে তারা সেই ত্রুটিটি মিস করেছেন, তারা এটিকে একটি অনুস্মারক হিসাবে অপরিবর্তিত রেখে গেছেন।
রাউল

5
@ রাউল ওকে, সুতরাং আমার পরবর্তী প্রকল্পে আমি কিছু ত্রুটি কোড ইতালিতে লিখব, আমি ইতালিয়ান! আপনি কি আশা করেন, ইংরেজী সর্বত্র? :-)
Gianluca Ghettini

@ ইলিয়া বিরমন এর আক্ষরিক অর্থ "ডাবল কোলন" নয়; এটা আক্ষরিক অর্থ "দুই বার, ডবল বিন্দু"
Sapphire_Brick

47

উইকিপিডিয়া থেকে :

পিএইচপি-তে স্কোপ রেজুলেশন অপারেটরকে পামাইম নেকুডোটায়িম (হিব্রু: פעמיים נקודתיים) নামেও ডাকা হয়, যার অর্থ হিব্রুতে "ডাবল কোলন"।

"পামায়িম নেকুডোটাইম" নামটি পিএইচপি 3 তে ব্যবহৃত ইস্রায়েলি-বিকাশযুক্ত জেন্ড ইঞ্জিন 0.5 তে প্রবর্তিত হয়েছিল যদিও এটি হ'ল হিব্রু না বলে অনেক বিকাশকারীকে বিভ্রান্ত করছে, এখনও এটি পিএইচপি 5 তে ব্যবহৃত হচ্ছে, যেমন এই নমুনা ত্রুটির বার্তায় :

$ php -r :: পার্স ত্রুটি: সিনট্যাক্স ত্রুটি, অপ্রত্যাশিত T_PAAMAYIM_NEKUDOTAYIM

পিএইচপি 5.4 হিসাবে স্কোপ রেজোলিউশন অপারেটর সম্পর্কিত ত্রুটি বার্তাগুলি এখনও এই নামটি অন্তর্ভুক্ত করে তবে এর অর্থ কিছুটা স্পষ্ট করে দিয়েছে:

$ পিএইচপি-আর :: পার্স ত্রুটি: সিনট্যাক্স ত্রুটি, অপ্রত্যাশিত '::' (টি_প্যামএআইআইএম_নেকডোটায়াইম)

থেকে সরকারী পিএইচপি ডকুমেন্টেশন :

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

শ্রেণি সংজ্ঞার বাইরে থেকে এই আইটেমগুলি উল্লেখ করার সময়, শ্রেণীর নাম ব্যবহার করুন।

পিএইচপি 5.3.0 হিসাবে, একটি ভেরিয়েবল ব্যবহার করে শ্রেণিটি উল্লেখ করা সম্ভব। ভেরিয়েবলের মান কোনও কীওয়ার্ড হতে পারে না (যেমন স্ব, পিতামাতা এবং স্থিতিশীল)।

পাইমাইম নেকুডোটায়িম প্রথমে ডাবল-কোলনের নামকরণের জন্য একটি অদ্ভুত পছন্দ বলে মনে হবে। যাইহোক, জেন্ড ইঞ্জিন 0.5 লিখতে গিয়ে (যা পিএইচপি 3 কে ক্ষমতা দেয়), যা জেন্ড দল এটিকে ডাকার সিদ্ধান্ত নিয়েছিল। এর অর্থ হ'ল ডাবল-কোলন - হিব্রু ভাষায়!


1
এটি আসলে আড়ম্বরপূর্ণ হিব্রু। উইকিপিডিয়া এখন বলেছে: "পিএইচপি-তে স্কোপ রেজুলেশন অপারেটরকে পামাইম নেকুডোটায়িম (হিব্রু: פעמיים נקודותיים, উচ্চারণ করা [paʔaˈmajim nəkudoˈtajim], দ্বিতীয় শব্দটি נקודתיים, উচ্চারণ করা [nəkudaˈtajim]) এর অর্থ বলা হয়, যার অর্থ" ডাবল কোলন "হিব্রু ভাষায়।"
মাইক

11

আপনি যখন খালি () ফাংশনে পিএইচপিতে একটি ধ্রুবক প্রয়োগ করেন তখন এটিও আসবে:

if (!empty(SOME_CONSTANT)) {

}

এটা আমার কেস ছিল। আমি এটি ব্যবহার করে এটি সমাধান করেছি:

$string = SOME_CONSTANT;
if (!empty($string)) {

}

2
কেন একটি ধ্রুবক খালি থাকবে?
হবেন না

1
চমৎকার প্রশ্ন: এটি কেবল উদাহরণস্বরূপ যদি অন্য কেউ এই ত্রুটির পরিস্থিতিতে পড়ে তবে আমি কেবল এটি সম্ভব হতে দেখাব :)
ম্যাক্স

6
@ আতঙ্কিত হবেন না: কেন? খালি () কেবলমাত্র একটি চলক বিদ্যমান থাকলে পরীক্ষা করে না, তবে এর মানটি "শূন্য" থাকলেও (পিএইচপি-র ক্ষেত্রে একটি শূন্য (0 )ও ফাঁকা থাকে)। এই ধ্রুবকটি এমন কোনও মানের প্রতিনিধিত্ব করতে পারে যা কোনও ব্যবহারকারী দ্বারা পরিবর্তিত হওয়া বোঝায় - যেমন ডিবি সেটিংস বা কিছু সত্য / মিথ্যা মান এবং অন্যান্য মান ধরণের যা কোড বিকাশকারী ডিজাইনের সময় জানেন না। এটি এপিআই বা কোড ফ্রেমওয়ার্কের জন্য সাধারণ। আমি কেবল বুঝতে পারছি না কেন জেন্ড পার্সারের বিকাশকারীরা একটি সাধারণ শব্দ ব্যবহার করেন নি যা প্রত্যেকে জানে এবং বোঝে তবে পরিবর্তে কিছু হিব্রু শব্দ ব্যবহার করা হয়েছে। মানে, এটি এমনকি মজার বা এমনকি কিছু নয়।
StanE

আমি কনফিগার ফাইলগুলিতে ধ্রুবক ব্যবহার করি এবং নির্দিষ্ট ধ্রুবকটি ফাঁকা থাকলে (নাল, মিথ্যা, 0, খালি স্ট্রিং, এমটি অ্যারে ....) কোডটিতে জানতে চাই। আমি কি তাদের সকলের বিরুদ্ধে ম্যানুয়ালি পরীক্ষা করব? ডাব্লুটিএফ
কিউদেব

5

আমি হিব্রুটি বেশ ভাল জানি, তাই আপনার জন্য "পামাইম নেকুডোটায়িম" নামটি পরিষ্কার করার জন্য, প্যারাফ্রেস করা অর্থটি "ডাবল কোলন", তবে আক্ষরিক অনুবাদ করা:

  • "পামায়িম" অর্থ "দু" বা "দুবার"
  • "নেকুডোটাইম" এর অর্থ "বিন্দু" (লিট। "গর্ত")
    • হিব্রু ভাষায়, একটি নেকুদা অর্থ একটি বিন্দু।
    • বহুবচন হ'ল নেকুডোট , অর্থাৎ, বিন্দু যা স্বরগুলির মতো কাজ করে ইংরেজিতে।
    • একে কেন নেকুডো- তায়িম বলা হয় তার কারণ হ'ল "-ইয়াম" প্রত্যয়টির অর্থ "দুটি" বা "দু'বার" হলেও এটি সাধারণত দুটি ক্রমের পরিবর্তে দুটি বস্তু ::বোঝায় , এইভাবে "দু'বার, দুটি বিন্দু" বা আরও বেশি বোঝায় সাধারণত স্কোপ রেজোলিউশন অপারেটর হিসাবে পরিচিত ।

2

এটি ব্যবহার করার সময় ফরচগুলিতে ঘটতে পারে:

foreach( $array as $key = $value )

পরিবর্তে

foreach( $array as $key => $value )

1

আমার জন্য এটি একটি ক্লাস ফাংশনের মধ্যে ঘটেছিল।

পিএইচপি 5.3 এবং উপরের উপর $this::$defaultsজরিমানা কাজ করেছে; যখন আমি কোডটিকে একটি সার্ভারে অদলবদল করি যে কোনও কারণেই এটির ত্রুটি ছুঁড়ে দিয়েছে version

আমার ক্ষেত্রে সমাধানটি হ'ল selfপরিবর্তে কীওয়ার্ডটি ব্যবহার করা উচিত $this:

self::$defaults ঠিক কাজ করে।


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