ホームページ  >  記事  >  バックエンド開発  >  PHP の基本的な構文の知識

PHP の基本的な構文の知識

WBOY
WBOYオリジナル
2016-08-08 09:33:101242ブラウズ

PHP (外国名: Hypertext Preprocessor、中国語名: 「ハイパーテキスト プリプロセッサ」) は、一般的なオープンソースのスクリプト言語です。この構文は C 言語、Java、Perl の特徴を吸収しており、学習が容易で主に Web 開発の分野に適しています。

PHP の独自の構文は、C、Java、Perl、および PHP 独自の構文を組み合わせたものです。 CGI や Perl よりも高速に動的 Web ページを実行できます。他のプログラミング言語と比較して、PHP で作成された動的ページは HTML (Standard Universal Markup Language に基づくアプリケーション) ドキュメントにプログラムを埋め込んで実行するため、HTML タグを完全に生成する CGI よりも実行効率が高く、コンパイルされたコードも実行できます。コンパイルにより暗号化が実現され、コードの実行が最適化され、コードの実行が高速化されます。

PHP 定数:

事前定義された定数:

PHP 自体も多数の事前定義定数を定義しており、これらは get_define_constants() を使用して表示できます。より一般的に使用される事前定義定数は次のとおりです。

PHP_OS: PHP システム。

PHP_VERSION: PHP のバージョン。

PHP_EOL: 改行文字 (クロスプラットフォームの移植性、非常に重要)。オペレーティング システムごとに異なる値が使用されます。改行はオペレーティング システムによって異なります。ウィンドウ: rn *nix: n MAC: r

PHP_INT_MAX: 整数の最大値。

PHP_INT_SIZE: 整数が占めるバイト数。

PATH_SEPARATOR: 環境変数内のパス間の区切り文字。

DIRECTORY_SEPARATOR: ディレクトリ区切り文字。 window では '' と '/' の両方を使用できますが、*nix では '/' のみを使用できます。

魔法の定数:

定数のように見えますが、実際には定数ではありません。これはマジック定数と呼ばれます。

__FILE__: 完全なファイル パスとファイル名。典型的なアプリケーション (プロジェクト コード) は次のとおりです。

define('ROOT_PATH',str_replace('7.php','',__FILE__));

エコー ROOT_PATH;

結果は同じです (__DIR__、この定数は PHP5.3 で新しく追加されました)

__FUNCTION__: 現在の関数名のマジック定数を取得します。

PHPベースの変換

PHP では、基本変換のために一連の関数が提供されています。

hex: 16 進数、dec: 10 進数、bin: 2 進数。

例: decbin() は 10 進数を 2 進数に変換し、octhex() は 8 進数を 16 進数に変換します。

整数の場合、値が大きくなりすぎるとオーバーフローすることはありませんが、型変換が発生して浮動小数点型に変換されます。

PHP は符号なし整数をサポートしていません。

のように:

$a = PHP_INT_MAX; //2147483648

$b = $a+1;

var_dump($b); //フロート

PHP では、float と double は実際には同じです。浮動小数点数の精度は 10 進数 14 桁で、最大値はプラットフォームに依存します (通常は 1.8e308)。浮動小数点数の比較は信頼できません。プログラムを作成するときは、2 つの浮動小数点数が等しいかどうかを比較してビジネス ロジックを取得しようとしないでください。

文字列の定義方法

文字列を定義するには、二重引用符、一重引用符、heredoc (区切り文字)、nowdoc (区切り文字) の 4 つの方法があります。

二重引用符は変数を解析できますが、一重引用符は変数を解析できません。一重引用符には二重引用符を含めることができ、二重引用符には一重引用符を含めることができますが、引用符自体に引用符を含めることはできません。

変数が解析できるかどうかは、その変数がどの変数に含まれるかによって決まります。二重引用符の場合、変数が解析されるかどうかは、定義文字列が一重引用符であるかどうかによって決まります。解析されません。

文字列内に {$ がつながっている場合、その中の {} が変数として解析されることを意味します。

変数が NULL とみなされる場合

1. NULL の値が割り当てられます

2. まだ値が割り当てられていません

3. unset()

最も一般的なアプリケーションの 1 つは、オブジェクトの値を NULL に割り当ててオブジェクトを破棄することです。

データ型関連関数

var_dump(): 型や値など、変数に関する詳細情報を出力します。

gettype(): タイプを取得します。

settype(): タイプを設定します。

isシリーズ:is_array()がよく使われます。

isset(): 変数が存在する(設定されている)かどうかを確認します。

empty() : 変数が空かどうかを確認します。

isset() の場合、宣言されている (値がある) 限り、その値が何であっても true を返します。

empty() の場合、ブール値 (変数) と等価であり、否定されます。

ブール値への変換は FALSE とみなされます

1.ブール値FALSEそのもの

2. 整数値 0 (ゼロ)

3. 浮動小数点値 0.0 (ゼロ)

4. 空の文字列と文字列「0」(「00」と「0.0」は TRUE とみなされます)

5. 空の配列

6.特殊型NULL(設定されていない変数も含む)

他のすべての値は TRUE とみなされます (オブジェクトとリソースを含む)。

PHPの動作ルール

除算演算の結果は、浮動小数点数または整数になる場合があります。

モジュロ演算では、小数がある場合、小数部分が削除されます。

モジュロ演算では、結果の符号は最初の数値によって異なります。

元のコード

10 進数を 2 進数に変換します。最上位ビットは符号ビットを表すために使用され、0 は正の数を表し、1 は負の数を表します。

逆コード

正の数の場合、補数コードは元のコードと同じです

負の数の場合、符号ビットは変更されず、他のビットは反転されます。

補体

正の数の場合、補数コードは元のコードと同じです。

負の数の場合は、補数に 1 を加えます。

シンボルはトランスコーディング中に変更されず、演算中にシンボル ビットが演算に参加します。

シフト操作

右シフト: 下位ビットはオーバーフローし、符号ビットは変更されず、上位ビットは符号ビットで完成します (2 の n 乗で除算して丸めることに相当します)。

左シフト: 上位ビットはオーバーフローし、符号ビットは変更されず、下位ビットは 0 で埋められます (2 の n 乗に相当)。

左シフトか右シフトかに関係なく、数値のサイズのみが変更され、符号は変更されないため、シフト演算中、符号ビットは変更されません。

PHP 演算子の優先順位

and or と && || の違い。

使い方は同じですが、優先順位が異なります。 && 、 || 、または

Break: 終了します。 Break が実行されると、loop ステートメント全体が直接終了します。

continue: 続行すると、現在のループ本体の実行が終了し、次のループ本体の実行が続行されます。

含めて要求する

include_path の値を設定します

set_include_path() 関数を使用します。

set_include_path('d:/php/test'); 次に、「file.php」を直接要求します。

注: 設定中、最後の設定は前の設定を上書きします。

現在の include_path 値を取得する

現在の include_path 値を取得するには、関数 get_include_path() を使用してください。

ディレクトリはセミコロンを使用して接続されます。

set_include_path('d:/php/test'.PATH_SEPARATOR.get_include_path());

PHP はソース ファイル単位でコードをコンパイルします。現在のファイルに構文エラーがある場合、PHP はエラーを報告します。コードのコンパイル処理は行われません。

require(require_once) と include(include_once) の違い

ファイルのロードが失敗すると、ファイルの依存関係が異なり、トリガーされるエラーに一貫性がありません。レベルが違います。

require(require_once): 致命的なエラーが発生し、スクリプトが終了します。

include(include_once): 警告エラーがトリガーされ、スクリプトは引き続き実行されます。

require(include) と require_once(include_once) の違い:

「once」は一度ロードすることを意味します。ロードするとき、once があるものは、まず現在のファイルがロードされているかどうかを判断します。

すでにロードされています: 再度ロードされません

ロードされていません: ロードを実行してください!

可能な限り require を使用してください。

スクリプトの実行を制御する

スクリプトの実行を終了し、スクリプトの実行を遅延します。

die()、exit(): スクリプトの実行を終了します。これが発生すると、スクリプトは直ちに終了し、すべての実行が終了します。終了する前に文字列を出力することもできます。

sleep(): スクリプトの実行を遅延させ、一定期間 (秒単位) 一時停止します。最大実行期間は 30 秒で、php.ini ファイルで設定できます max_execution_time = 30

パラメータ リスト内の一部のパラメータにはデフォルト値があり、一部にはデフォルト値がない場合、デフォルト値を持つパラメータは正式なパラメータ リストの後に配置されます。

func_get_args(): 関数内のすべての実パラメータを取得します。

$GLOBALS: 事前定義された変数

ユーザー データのスーパーグローバル化に特化した事前定義された変数。

他のスーパーグローバル変数とは異なります。

各グローバル変数は、$GLOBALS 内の要素に自動的に対応します。

グローバル変数を追加すると、同じ名前の要素が $GLOBALS! に自動的に追加されます。逆に!

$v1 = 10;

var_dump($GLOBALS['v1']);

$GLOBALS['v2'] = 20;

var_dump($GLOBALS['V2']);

グローバルの機能は、

ローカル変数を宣言し、それを同じ名前のグローバル変数への参照に初期化します。

匿名関数の役割

通常、匿名関数は一時関数として使用できます。たとえば、一部の内部関数では、操作を完了するために特定の関数を呼び出す必要があります。例: array_map(): Return array = array_map('function', array); 提供された関数を使用して、配列内のすべての要素を操作します。

パラメーターにコールバック (呼び出し可能) が必要な場合は、匿名関数を渡すことでこれが行われます。

PHP配列ポインタの問題

ポインタ関数

PHP には、ポインタが指す配列要素のキーと値を取得する機能があります。機能を利用する:

current()、現在の要素の値を取得します

key(): 現在の要素のキーを取得します。ポインタがすでに無効な場合は、NULL が返されます。要素が存在するかどうかを判断するために使用されます

ポインターを移動する機能も必要です。

next(): ポインタの移動を完了できます!

配列関数:

range(): 特定の範囲内の要素の配列を取得できます。

array_merge('$arr1','$arr2',...): 配列を結合し、複数の配列を結合します。

下付き文字が繰り返されるとどうなるでしょうか?

数値インデックス作成: 完全な再インデックス作成!

文字の添え字: 後で表示される要素の値は、前の要素の値を上書きします。

array_rand (配列, 数値): 配列から要素をランダムに取得し、添え字を取得します。複数ある場合は、ランダムな添え字のセットを返します。結果は小さいものから大きいものまで並べられています。

shuffle(&$arr): 配列内の要素の順序をシャッフルします。パラメータは参照によって渡されることに注意してください。元の配列が破壊されます。

キー値の操作:

array_keys(): すべてのキーを取得します。

array_values(): すべての値を取得します。

in_array(): 特定の値が存在するかどうか。

array_key_exists(): キーが存在するかどうか。

array_combine('key array', 'value array'): 2 つの配列を 1 つの配列にマージするために使用します。1 つはキーとして、もう 1 つは値として使用します。

array_fill('最初のインデックス値','数値','値'): ​​配列を埋めます。

Array = array_fill(開始インデックス、埋める要素の数、埋める値);

array_chunk(): 配列を分割します。原理はサブ配列内の要素の数です。

array_intersect($arr1, $arr2): 2 つの配列の交差を計算し、$arr1 に存在する要素と $arr2 にも存在する要素を見つけます。データは最初のパラメーターに表示されます。

array_diff($arr1, $arr2): 2 つの配列の差を計算します。 arr1 には存在するが arr2 には存在しない要素を見つけてください。

配列はスタックとキューをシミュレートします。

桟もqueueも代表的なデータ構造であり、どちらもリストリストの一種です。

スタックへのプッシュ: array_push() は、配列の最後にある配列にデータをプッシュします。

スタックからポップオフします: array_pop()、スタックの一番上に要素を出力します。

array_push() と array_pop() は、すべての要素が 0 から始まり 1 つずつ増加するようにインデックスを再作成します。

エンキュー: array_push()、配列の最後にある配列にデータをプッシュします。

デキュー: array_shift()、配列の先頭のデータを取り出します。

array_unshift() は、配列の先頭から配列にデータをプッシュできます。

配列ソート関数

並べ替え関数はすべて参照渡しです。

r:リバース、リバース。 a:協会、協会。 u: ユーザー、ユーザー定義。

sort('array'): キーと値の関連付けを維持せずに、値によって昇順に並べ替えます。

rsort('array'): キーと値の関連付けを維持せずに、値によって降順に並べ替えます。

asort('array'): キーと値の関連付けを維持しながら、値によって昇順に並べ替えます。

arsort('array'): キーと値の関連付けを維持しながら、値によって降順に並べ替えます。

ksort('array'): キーごとに昇順で、キーと値の関連付けを維持します。

krsort('array'): キーと値の関連付けを維持しながら、キーによって降順に並べ替えます。

natsort('array'): 自然数ソート。計算された自然数を使用してデータをソートできます。

usort('array'): カスタム並べ替え、要素間のユーザー定義のサイズ関係。ユーザーは 2 つの要素のサイズを比較する関数を提供し、要素のサイズ関係を PHP に伝えることができます。ユーザーが定義した関数は、2 つの要素間のサイズ関係を usort() に伝える役割を果たし、usort は関係を取得した後に並べ替えを完了する役割を担います。戻り値を使用して通知してください。

効果を昇順で返します:

最初の要素が小さいことを示す負の数を返します。

最初の要素が大きいことを示す正の数を返します。

等しいことを示す 0 を返します。

以上、PHP 構文の内容を含め、PHP の基本的な構文知識を紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。