পিএইচপি ক্ষেত্রে ফাংশন এবং পদ্ধতিগুলি সংবেদনশীল নয় কেন?


107

পিএইচপি-তে ফাংশন এবং পদ্ধতিগুলি নিম্নলিখিত উদাহরণে চিত্রিত হিসাবে কেস-সংবেদনশীল।

function ag()
{
    echo '2';
}

Ag();
class test {
    function clMe()
    {
        echo 'hi';
    }
}

$instance = new test;
$instance->clme();

তবে এটি ভেরিয়েবলের ক্ষেত্রে নয়। যুক্তি কী?


161
পিএইচপি-র কোনও দুর্গন্ধ যুক্তির দরকার নেই!
ম্যাক্স শবাবাকহ

2
"কারণ স্যুপ ম্যান তাই বলে।" কোন যুক্তিপূর্ণ কিন্তু রেফারেন্স: php.net/manual/en/functions.user-defined.php (3 উদাহরণ এবং 4 মধ্যে), php.net/manual/en/language.variables.basics.php
outis

2
class Share{ share($str){ echo $str; } } $sh = new Share(); $sh->share("string");ফাংশন শেয়ার ($আরআরটি) এর জন্য দুটি কল দেখে আপনি অবাক হতে পারেন। প্রথম কারণটি ক্যাটারের কারণে এবং দ্বিতীয় কারণেই স্পষ্ট কল!
vivek.m

1
@ আউটিস, "স্যুপ ম্যান" বলতে কী বোঝ?
পেসারিয়ার

1
@ আউট, আপনি সেনফিল্ড থেকে "স্যুপ নাজি" উল্লেখ করছেন। ইউটিউব , উইকিপিডিয়া
কেভিন ট্রাস

উত্তর:


98

আমাকে সাক্ষাত্কার থেকে উদ্ধৃতি দিন - পিএইচপি এর নির্মাতা, রাসমাস লেয়ার্ডর্ফ orf

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

সাধারণ পার্সারটি আস্তে আস্তে কন্ডিশনাল ট্যাগগুলি অন্তর্ভুক্ত করে তারপরে লুপ ট্যাগ, ফাংশন ইত্যাদির অন্তর্ভুক্ত হয়ে উঠল no কোনও বিন্দুতেও আমি ভাবিনি যে আমি একটি স্ক্রিপ্টিং ভাষা লিখছি। আমি কেবল ম্যাক্রো রিপ্লেসমেন্ট পার্সারে কিছুটা কার্যকারিতা যুক্ত করছি। আমি তখনও সিটিতে আমার সমস্ত আসল ব্যবসায়ের যুক্তি লিখছিলাম

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


66
আমি প্যারিসে পিএইচপি সম্মেলনে রাসমাসের একটি উদ্ধৃতিও কমবেশি মনে করেছি: "কঠোর কোডিং বিধি বা মান অনুসরণ করার ক্ষেত্রে আমি অবশ্যই খুব ভাল প্রোগ্রামার নই, তবে আমি বলতে পারি যে আপনি যদি কেস সংবেদনশীলতার উপর নির্ভর করেন তবে অন্যের কাছ থেকে একটি ফাংশন নাম চিনুন, আপনি একধরণের গুরুতর সমস্যা! "
টম ডেস্প

1
এটি কি ভবিষ্যতে কেস-সংবেদনশীল?
ভি

4
তাই পিএইচপি প্রোগ্রামাররা তাদের ফাংশনগুলির নামকরণের সময় ক্যামিটকেসের পরিবর্তে আন্ডারস্কোর ব্যবহার করে।
পত্রপত্রিকা 7

2
@ পত্রসট্রেট 7 কিছু করেন। ভাল না। কমপক্ষে, আর না।
ড্যান

13
@ লাদান, প্রচুর "ভাল" প্রোগ্রামাররা আন্ডারস্কোর ব্যবহার করে। আসলে, পিএসআর -0 উদ্দেশ্যমূলকভাবে কোনও প্রস্তাব দেয় না। একটি ভাল প্রোগ্রামার আন্ডারস্কোর বা ক্যামেলকেস বাছাই করে এবং সেই সম্মেলনে টিকে থাকে। সেই পছন্দটি কেউ কোনও ভাল প্রোগ্রামার কিনা তা পরিমাপ করা বেশ নির্বোধ।
jdp

34

হ্যাঁ, ফাংশন এবং পদ্ধতির নামগুলি কেস-সংবেদনশীল নয়।

এবং হ্যাঁ, ভেরিয়েবলের নামগুলি কেস-সংবেদনশীল।

আমি নিশ্চিত নই যে এর কারণ আছে - এটি দীর্ঘদিন ধরে এইভাবে না থাকলে এবং তাই, পিছিয়ে থাকা সামঞ্জস্যতার কারণে, মামলাটি থেকেই যায়।



একটি রেফারেন্স হিসাবে, ম্যানুয়ালটির বিভিন্ন পৃষ্ঠায় কয়েকটি লিঙ্ক / উদ্ধৃতি:

ফাংশনগুলির জন্য ( উদ্ধৃতি ) :

দ্রষ্টব্য: ফাংশন নামগুলি কেস-সংবেদনশীল, যদিও তাদের ঘোষণায় প্রদর্শিত হওয়ায় ফাংশনগুলি কল করা সাধারণত ভাল ফর্ম।

এবং পদ্ধতিগুলি অবজেক্টগুলিতে ফাংশনগুলির চেয়ে বেশি কিছু নয় - বিশেষত যখন আমরা পিএইচপি 4 এবং পিছনে-সামঞ্জস্যতা সম্পর্কে চিন্তা করি।


এবং, ভেরিয়েবলগুলির জন্য ( উদ্ধৃতি ):

পিএইচপি-তে ভেরিয়েবলগুলি ডলার সাইন দ্বারা প্রতিনিধিত্ব করা হয় তার পরে ভেরিয়েবলের নাম। পরিবর্তনশীল নামটি কেস-সংবেদনশীল।

এবং অবজেক্টের বৈশিষ্ট্যগুলি অবজেক্টগুলিতে ভেরিয়েবলের চেয়ে বেশি কিছু নয় - পিএইচপি 4 এবং পশ্চাতে-সামঞ্জস্যের বিষয়ে একই মন্তব্য।

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