この記事では参考値が良いphp cliモードでパラメータを取得する方法を中心に紹介します。以下のエディターで見てみましょう
PHP が cli モードでパラメータを受け取るには 2 つの方法があります
1. argv 配列を使用します
2. getopt メソッドを使用します
1. argv 配列を使用します
例: PHP を実行し、3 つのパラメータ (type=news、is_hot=1、limit=5) を渡す必要があります test.php を作成します<?php print_r($argv); ?>
コマンドラインで
php test.php news 1 5
を実行しますphp test.php news 1 5
输出:
Array ( [0] => test.php [1] => news [2] => 1 [3] => 5 )
可以看到argv[0]为当前执行的php文件名称,而argv[1]~argv[3]则是传递的参数的值
argv[1]等于type的值
argv[2]等于is_hot的值
argv[3]等于limit的值
这样可以根据argv数组来获取传递的参数进行后续的处理操作。
缺点:
使用argv数组,可以按顺序获取传递的参数。但获取后,需要做一个对应处理,上例中需要把argv[1]对应type参数,argv[2]对应is_hot参数,argv[3]对应limit参数。而如果在传递的过程中,参数顺序写错,则会导致程序出错。
例如:
<?php $param = array(); $param['type'] = $argv[1]; $param['is_hot'] = $argv[2]; $param['limit'] = $argv[3]; print_r($param); ?>
执行
php test.php news 1 5
输出:
Array ( [type] => news [is_hot] => 1 [limit] => 5 )
而传递顺序不同,获取到的参数数值会不同,导致后续程序出错
执行
php test.php 1 5 news
输出:
Array ( [type] => 1 [is_hot] => 5 [limit] => news )
因此在使用argv数组传递参数时,需要注意参数传递的顺序。
2.使用getopt方法
getopt 从命令行参数列表中获取选项
array getopt ( string $options [, array $longopts ] )
参数:
options
该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。
longopts
选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(–)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 –opt。
options 可能包含了以下元素:
单独的字符(不接受值)
后面跟随冒号的字符(此选项需要值)
后面跟随两个冒号的字符(此选项的值可选)
选项的值是字符串后的第一个参数。它不介意值之前是否有空格。
options 和 longopts 的格式几乎是一样的,唯一的不同之处是 longopts 需要是选项的数组(每个元素为一个选项),而 options 需要一个字符串(每个字符是个选项)。
传值的分隔符可以使用空格或=。
可选项的值不接受空格作为分隔符,只能使用=作为分隔符。
返回值
此函数会返回选项/参数对,失败时返回 FALSE。
选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。
1.使用options实例
a,b,c 为需要值
d 为可选值
e 为不接受值
<?php $param = getopt('a:b:c:d::e'); print_r($param); ?>
执行
php test.php -a 1 -b 2 -c 3 -d=4 -e 5
输出:
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 4 [e] => )
2.使用longopts实例
type,is_hot 为需要值
limit 为可选值
expire 为不接受值
<?php $longopt = array( 'type:', 'is_hot:', 'limit::', 'expire' ); $param = getopt('', $longopt); print_r($param); ?>
执行
php test.php --type news --is_hot 1 --limit=10 --expire=100
输出:
Array ( [type] => news [is_hot] => 1 [limit] => 10 [expire] => )
3.找到第一非选项,后面忽略实例
<?php $longopt = array( 'type:', 'is_hot:', 'limit::', 'expire' ); $param = getopt('', $longopt); print_r($param); ?>
执行
php test.php --type news --is_hots 1 --limit=10 --expire=100
出力:
Array ( [type] => news )
argv[0] が現在実行されている php ファイルの名前であることがわかります。 、および argv[1]~argv [3] 渡されたパラメータの値
argv[1] は type の値と等しい
argv[2] は is_hot の値と等しい argv[3] は制限の値に等しい
このようにして、後続の処理操作の argv 配列パラメーターに基づいて転送を取得できます。
🎜🎜🎜短所: 🎜🎜🎜🎜 argv配列を使用すると、渡されたパラメータを順番に取得できます。ただし、取得後に対応する処理を行う必要があります。上記の例では、argv[1]がtypeパラメータ、argv[2]がis_hotパラメータ、argv[3]がlimitパラメータに対応する必要があります。 。また、転送処理中にパラメータを間違った順序で書き込むと、プログラムエラーが発生します。 🎜🎜例: 🎜🎜🎜rrreee🎜🎜🎜🎜🎜php test.php news 1 5
を実行🎜🎜出力: 🎜🎜🎜rrreee🎜🎜🎜🎜ただし、渡す順序が異なり、取得されるパラメータ値は異なるため、後続のプログラム エラーが発生します🎜🎜🎜Execution🎜🎜php test.php 1 5 news
🎜🎜Output:🎜🎜🎜rrreee🎜🎜🎜🎜 argv 配列を使用してパラメータを渡す場合は、パラメータが渡される順序に注意する必要があります。 🎜🎜🎜🎜🎜2. getopt メソッド 🎜🎜🎜🎜getopt を使用してコマンドライン引数リストからオプションを取得します🎜🎜array getopt ( string $options [, array $longopts ] )
🎜🎜🎜 パラメータ: 🎜🎜🎜🎜🎜🎜options 🎜🎜🎜🎜 この文字列内の各文字は、単一のハイフン (-) で始まるオプション文字として扱われます。 。 たとえば、オプション文字列「x」はオプション -x を識別します。 a ~ z、A ~ Z、0 ~ 9 のみが許可されます。 🎜🎜🎜🎜longopts 🎜🎜🎜🎜オプション配列。この配列内の各要素はオプション文字列として扱われ、スクリプトに渡されたオプションと 2 つのハイフン (-) を組み合わせて照合されます。 たとえば、長いオプション要素「opt」はオプション -opt を識別します。 🎜🎜🎜オプションには次の要素が含まれる場合があります: 🎜🎜🎜🎜 単一の文字 (値は受け入れられません) 🎜🎜 コロンが後に続く文字 (このオプションには値が必要です) 🎜🎜 の後に 2 つのコロン文字が続きます (このオプションの値はオプションです) 🎜🎜 オプションの値は、文字列の後の最初のパラメータです。値の前にスペースがあっても問題ありません。 🎜🎜 options と longopts の形式はほぼ同じですが、唯一の違いは、longopts はオプションの配列 (各要素がオプション) である必要があるのに対し、options は文字列 (各文字がオプション) である必要があることです。 🎜🎜🎜渡される値の区切り文字にはスペースまたは=を使用できます。 🎜🎜🎜🎜オプションの値は区切り文字としてスペースを受け入れません。区切り文字として使用できるのは = のみです。 🎜🎜🎜戻り値🎜🎜この関数はオプションとパラメータのペアを返し、失敗した場合は FALSE を返します。 🎜🎜オプションの解析は、最初に見つかった非オプションで終了し、それ以降のものはすべて破棄されます。 🎜🎜🎜1. オプション インスタンスを使用します🎜🎜🎜🎜a、b、c は必須の値です🎜🎜d はオプションの値です🎜🎜e は受け入れられない値です🎜🎜🎜rrreee🎜 🎜🎜Execute🎜🎜php test.php -a 1 -b 2 -c 3 -d=4 -e 5
🎜🎜出力: 🎜🎜🎜rrreee🎜🎜🎜🎜2. longopts インスタンスを使用します 🎜🎜🎜🎜type、is_hot は必須の値です 🎜🎜limit はオプションの値です 🎜🎜expire は受け入れられない値 🎜🎜🎜rrreee🎜🎜🎜 🎜🎜php テスト。php --type news --is_hot 1 --limit=10 --expire=100
🎜🎜出力: 🎜🎜🎜rrreee🎜🎜🎜🎜 3. 3. 1 つの非オプションを見つけます。次の例は無視してください🎜🎜🎜🎜🎜rrreee🎜🎜🎜Execution🎜🎜php test.php --type news --is_hots 1 --limit=10 --expire =100
🎜🎜 出力: 🎜🎜🎜rrreee🎜🎜🎜 is_hots はオプション値ではない (is_hot が定義されている) ため、これ以降のパラメータは破棄されます。 🎜🎜🎜概要: 🎜🎜🎜 argv 配列を使用してパラメータを渡します。このメソッドはシンプルで実装が簡単です。パラメータの順序を間違えることはできず、パラメータを取得した後に対応する処理を行う必要があります。 🎜getopt メソッドを使用すると、パラメーター名を使用でき、パラメーターの順序も任意にでき、比較的標準化されています。 (推奨)
関連する推奨事項:
PHP浮動小数点計算の比較とrounding_phpの基礎に対する不正確な解決策
PHPファイルのメインコードの説明upload_phpの基礎
以上がCLIモードでPHPのパラメータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
