ပရိုဂရမ်းမင်းဘာသာစကားများစွာတွင် အဓိက လုပ်ဆောင်ချက်မှာ Parameters များလက်ခံရရှိရန်နှင့်အစီအစဉ်ကိုကွပ်မျက်ရန်တာ 0 န်ယူသည့်အစီအစဉ်သို့ဝင်ရန်ဖြစ်သည်။ PHP သည် Web Development အတွက် 0 င်ရောက်ခြင်းနှင့် 0 င်ရောက်မှုနေရာများအတွက်အသုံးပြုလေ့ရှိသော်လည်း Command Line Mode (CLI) တွင်အဓိကလုပ်ဆောင်ချက် (CLI) တွင် အဓိက လုပ်ဆောင်ချက်မရှိသော်လည်းကျွန်ုပ်တို့သည် အဓိက လုပ်ဆောင်ချက်စနစ် (CLI) ကိုတုပနိုင်ဆဲဖြစ်သည်။
ဤဆောင်းပါးသည် PHP command line parameter သည် အဓိက လုပ်ဆောင်ချက်တွင် parameter များကိုမည်သို့ရနိုင်မည်ကိုအသေးစိတ်ရှင်းပြရန်နှင့်ဥပမာအားဖြင့်ကွဲပြားသော parameter ဖြန့်ချိနည်းစနစ်များကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
PHP CLI Mode တွင် script ကို run သောအခါ parameters တွေကို command line မှတဆင့် script ကို script သို့ဖြတ်သွားနိုင်သည်။ PHP သည် Parameters များကို ဒေါ်လာ argv ခင်းကျင်းမှုတွင်သိုလှောင်ထားသည်။
$ argv [0] သည်ဇာတ်ညွှန်းအမည်ဖြစ်သည်
$ argv [1] နှင့်နောက်ပိုင်းတွင် parameters တွေကိုလွန်နေကြသည်
ဥပမာ -
<?php
// ပေြးသွားခြင်း: php script.php hello world
print_r($argv);
?>
ထုတ်လုပ်မှု -
Array
(
[0] => script.php
[1] => hello
[2] => world
)
PHP ကိုယ်တိုင်ကတင်းကြပ်သော အဓိက လုပ်ဆောင်မှုမရှိပေမဲ့ function တစ်ခုကိုကျွန်ုပ်တို့ဖန်တီးရန်နှင့် parameters များကို passeters ထဲတွင် passing လုပ်ရန်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
<?php
function main(array $args) {
if (count($args) < 2) {
echo "ကျေးဇူးပြု. parameters တွေကိုပေးပါ。\n";
return;
}
echo "ပထမ ဦး ဆုံး parameter သည်ဖြစ်ပါတယ်:" . $args[1] . "\n";
echo "ဒုတိယ parameter သည်ဖြစ်ပါတယ်:" . $args[2] . "\n";
}
// တယ်လီဖုန်းဆက်ခြင်း main လုပ်ဆောင်ချက်,နှင့် command line parameters တွေကိုအတွက် pass
main($argv);
?>
command ကို run
php script.php foo bar
ထုတ်လုပ်မှု -
ပထမ ဦး ဆုံး parameter သည်ဖြစ်ပါတယ်:foo
ဒုတိယ parameter သည်ဖြစ်ပါတယ်:bar
php သည် parsing command line parameters တွေကို parsopt function ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ပုံစံဖြင့်ပြုလုပ်နိုင်သည်။
<?php
function main() {
// short options: a: ညှစ်aနောက်မှတန်ဖိုးယူဆောင်လာရမည်,bညှစ်无值选项
$options = getopt("a:b");
if (isset($options['a'])) {
echo "တေးရေး a တန်ဖိုး:" . $options['a'] . "\n";
} else {
echo "未提供တေးရေး a\n";
}
if (isset($options['b'])) {
echo "တေးရေး b အစုံ\n";
} else {
echo "တေးရေး b မသတ်မှတ်ပါ\n";
}
}
main();
?>
ပြေး:
php script.php -a hello -b
ထုတ်လုပ်မှု -
တေးရေး a တန်ဖိုး:hello
တေးရေး b အစုံ
ကျွန်ုပ်တို့သည် URL Parameter တစ်ခုတွင်သွားရန်လိုအပ်ပြီး၎င်း၏ domain name (ဥပမာ gitbox.net နှင့်ပုံသဏ္ဌာန်အစားထိုးခြင်း) ကိုပြုလုပ်ရန်လိုအပ်သည်ဆိုပါစို့။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
function main(array $args) {
if (count($args) < 2) {
echo "ကျေးဇူးပြုပြီးတစ် ဦး တည်းထဲဝင်ပါ URL တေးရေး。\n";
return;
}
$url = $args[1];
$parsed = parse_url($url);
if ($parsed === false || !isset($parsed['host'])) {
echo "အားမရှိသော URL\n";
return;
}
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ gitbox.net
$parsed['host'] = 'gitbox.net';
// ပြန်လည်ငေှ့ URL
$new_url = (isset($parsed['scheme']) ? $parsed['scheme'] . '://' : '') .
$parsed['host'] .
(isset($parsed['path']) ? $parsed['path'] : '') .
(isset($parsed['query']) ? '?' . $parsed['query'] : '') .
(isset($parsed['fragment']) ? '#' . $parsed['fragment'] : '');
echo "အစားထိုး URL: " . $new_url . "\n";
}
// 传入တေးရေး示例: php script.php https://www.example.com/path?foo=bar#section
main($argv);
?>
ဥပမာ -
php script.php https://www.example.com/path?foo=bar#section
ထုတ်လုပ်မှု -
အစားထိုး URL: https://gitbox.net/path?foo=bar#section
PHP CLI mode သည် ဒေါ်လာ argv မှတစ်ဆင့် parameters များကိုလက်ခံသည် ။
option parameters တွေကိုပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်ရန် getopt ကို သုံးပါ။
URL ကိုခွဲခြမ်းစိတ်ဖြာခြင်း၏ဥပမာသည်အထူးသဖြင့် URL domain name ကို url domain name ကိုပြောင်းလဲသောအခါလက်တွေ့ကျသောအပလီကေးရှင်းများကိုပြသသည် ။
Parameter Passing ယန္တရားကိုနားလည်ခြင်းသည်ပိုမိုခိုင်မာသည့်နှင့်ပြောင်းလွယ်ပြင်လွယ်သော command-line script များကိုရေးရန်ကူညီလိမ့်မည်။