জেফ শ্যাচলারের উত্তর প্রসারিত করা , পাইপলাইনটি পুরোপুরি এড়িয়ে যান এবং কেবল অভ্যন্তরীণ স্থির প্রতিনিধিত্বের জন্য জিজ্ঞাসা করুন:
$ php -r 'echo PHP_VERSION;'
7.1.15
আরও বা কম তথ্য পেতে আপনি এই ধরণটি প্রসারিত করতে পারেন:
$ php -r 'echo PHP_MAJOR_VERSION;'
7
সমস্ত উপলব্ধ জন্য পূর্বনির্ধারিত ধ্রুবকগুলির পিএইচপি তালিকা দেখুন ।
প্রধান সুবিধা: এটি কোনও সংজ্ঞায়িত আউটপুট বিন্যাসের উপর নির্ভর করে না php -v
। এটি পাইপলাইন সমাধান হিসাবে একই কর্মক্ষমতা সম্পর্কে দেওয়া, তারপরে এটি আরও শক্তিশালী পছন্দ বলে মনে হচ্ছে।
যদি আপনার উদ্দেশ্যটি সংস্করণটির পরীক্ষা করা হয় তবে আপনি এই প্যাটার্নটিও ব্যবহার করতে পারেন। উদাহরণস্বরূপ, এই কোডটি 0
যদি পিএইচপি> = 7 এবং 1
অন্যথায়: প্রস্থান করবে
php -r 'exit((int)version_compare(PHP_VERSION, "7.0.0", "<"));'
রেফারেন্সের জন্য, এখানে বিভিন্ন পরীক্ষার মামলার সময়, দ্রুততম আদেশ করা হয়েছে:
$ time for (( i=0; i<1000; i++ )); do php -v | awk '/^PHP [0-9]/ { print $2; }' >/dev/null; done
real 0m13.368s
user 0m8.064s
sys 0m4.036s
$ time for (( i=0; i<1000; i++ )); do php -r 'echo PHP_VERSION;' >/dev/null; done
real 0m13.624s
user 0m8.408s
sys 0m3.836s
$ time for (( i=0; i<1000; i++ )); do php -v | head -1 | cut -f2 -d' ' >/dev/null; done
real 0m13.942s
user 0m8.180s
sys 0m4.160s
... | head -1
বা আরও ভাল উপায় হতে পারে