チュートリアル|データ
この章では、数値、変数、定数などの PHP プログラムの内部データに焦点を当てます。プログラム内のデータは演算子によって制御され、演算子は内部データに対してどのような演算 (加算、減算など) を実行するかを PHP に指示します。 PHP プログラムの外部データにはテキスト ファイルとデータベースが含まれます。外部データの詳細については、第 6 章「データベースと SQL」を参照してください。これらの値はプログラムの実行中に変更されません。ソースコード内でその値がどのようなものであるべきかを正確に表現していること。ほとんどの場合、プログラムの実行中に特定の値を変更する必要があるため、変更可能な値を保存するためにコンピューターの記憶領域の一部を確保しておく必要があります。また、プログラムが必要なときにそれらを見つけられるように、これらの小さなストレージ ユニットの場所に常に注意を払う必要があります。すべてのコンピューター言語と同様に、PHP は変数を使用してコンピューターのメモリ使用量を監視し、新しいメッセージを保存する必要がある場合は、そのメッセージを変数に設定できます。定数は、名前が割り当てられた数値を指します。定数の最も典型的な例は、数学的な値 π (パイ) です。
この章では、PHP で値、変数、定数を使用する方法について説明します。まず、数値について説明します。
3.1 数値
数値は、「等しい」または実際のコードの形式で表現されることがよくあります。たとえば、ソース コード プログラムで 12.5 のような値が表示される場合、それは「1」ではなく、12.5 を指します。 "、" 2"、"."、および "5"。テキストも同じ方法で表すことができます。たとえば、「Rolf D"Barno」 (二重引用符に注意してください) は 12 文字の文字列を表します。これらの 12 文字は二重引用符で囲まれているため、文字列値のみにすることができます。
PHP は 2 種類の値を使用します:
.Number - 最も基本的なデータ型
.Text - 単位として処理される文字列
3.1.1 数値 PHP で最も一般的に使用される数値は数値です。これは通常、特定のタスクを完了するためにプログラムで使用する必要がある値を表します。最も一般的に使用される数値は 10 進数ですが、PHP では 8 進数や 16 進数も使用できます。高校で学んだ数学の知識はほとんど忘れていますが、覚えているのはおそらく小数点を移動することを好むためです。 4 は 102,300 に相当します。たとえば、10.23E-4 は 001023 に等しいなど、科学式でマイナス記号を使用することもできます。簡単に言えば、指数が正の場合は、小数点を右に移動します。 、指数が負の場合は、小数点を左に移動します。
注: 10 進数以外のシステムに慣れていない人のために、簡単に説明します。 10 の値を表示する場合。 、それは (1*10)+5 または 1510 を意味します。
8 進数の底は、(1*8)+5 または 1310 を意味します。
16 進数の底は、 を見た場合、16 です。値 15 は、(1*16)+5 または 2110 を意味します。16 個の値をそれぞれ埋めるには、0 ~ 9 に加えて、6 文字が必要です。したがって、この値は、11 ~ 16 を表すためによく使用されます。 BD16 は (B16*16) + D16 または (1110*. 16) +1310 に等しく、つまり 17610 です。
プログラムで使用されるいくつかの異なる種類の数値を見てみましょう
* 123 -- 10 進整数。数字の接頭辞 0 は 8 進数を表します。
* 0x23 -- 16 進整数。数字の接頭辞「0x」は 16 進数を表します。
小数部分を含む数値は浮動小数点数と呼ばれます。これらの値は、浮動小数点数を指します。
* 100.5 -- 小数点以下 1 桁の浮動小数点数、
* 54.534 -- 小数点以下 3 桁の浮動小数点数とも呼ばれます。 1000 分の 54534 とも呼ばれます
* .000034 -- 科学式 3.4E-5 で表すこともできます
整数には
3.1.2 テキスト
テキストは引用符で囲まれた文字のグループであるため、単一のデータとして使用できます。実際、PHP の引用符の要件は厳密ではなく、引用符のない 1 つの単語を文字列を表すために使用することもできますが、混乱を避けるため、これは行わないでください。テキスト値には一連の文字が含まれるため、テキスト値は文字列と呼ばれることがよくあります。これらは、ファイル名を決定したり、メッセージを表示したり、プロンプトを入力したりするためにプログラムでよく使用されます。 PHP では、一重引用符 (')、二重引用符 (")、および逆引用符 (`) の機能が厳密に区別されます。
テキストは、しばしば文字列とも呼ばれます。
一重引用符文字列:
一重引用符文字列は、非常に理解しやすく、使用するテキストを単一引用符で囲むだけです。例:
'Men at Arms by Terry Pratchett'
'
これは HTML 段落です。
'
. これは一重括弧 (') で囲まれたテキストです。
注: 一重引用符の本当の役割は、この章で後述する「変数置換」の内容を読むとわかります。一重引用符の中で再度一重引用符を使用する必要がある場合は、少し複雑になります。たとえば、次のステートメントは、2 番目の引用符で表される文字列がすでに終了しているため、正しく機能しません。
「テリーの本はとても楽しいです。」
この典型的なエラーは、構文 (または解析) エラーです。PHP コンパイラーは、2 番目の一重引用符の後のテキストを処理する方法を知りません。正しい表現は次のとおりです:
「Terry の本はとても楽しいです。」
一重引用符のバックスラッシュ() 文字列表現 (テキスト値を終了する) は無視されます。
ヒント: バックスラッシュ文字は、エスケープ文字としても知られています。これは、おそらくその後の文字を通常の意味から切り離すためです。
一重引用符で囲まれた文字列に関するもう 1 つの重要な点は、一重引用符で囲まれた文字列で改行をラップする必要がある場合は、ソース コードに改行キーを入力するだけです。リスト 3.1 は、これを行う方法を示しています。
リスト 3.1 line_breaks.php3 -- 入力行に改行を追加して新しい行を開始します
echo '
最初の段落: <br><br>キャロット伍長、アンク・モルポーク市衛兵<br>(夜)見てください)、ナイトシャツを着て座って <br> 鉛筆を取り上げ、<br> しばらく端を吸い、そして次のように書きました:
> 読者が HTML 言語に慣れていない場合は、この HTML 教育ガイドを 1 つまたは 2 つ読んでください。この本の後の章では、HTML 言語に慣れる必要があります。
ページ 35、図 3.1
図 3.1 コードに追加された改行を Web ブラウザーで確認できます
図 3.1 では、改行が単一引用符で囲まれており、改行も文字列のコード部分。
二重引用符で囲まれた文字列:
二重引用符で囲まれた文字列は一重引用符で囲まれた文字列と似ていますが、二重引用符で囲まれた文字列は少し複雑です。二重引用符で囲まれた文字列内でバックスラッシュを使用すると、文字列にエスケープ シーケンスと変換文字を追加できます。変数置換も使用できますが、変数置換の問題についてはすぐに説明するつもりはありません。このトピックについては後ほど詳しく説明します。
二重引用符で囲まれた文字列は、二重引用符 (") で囲まれた文字列です。
基本的な二重引用符で囲まれた文字列は、二重引用符 (") で囲まれた一連の文字です。文字列内で二重引用符を使用する必要がある場合は、バックスラッシュ文字を使用できます。例:
「Men at Arms by Terry Pratchett」
「
これは HTML の段落です。
」
「テリーの本はとても楽しいです。」
「ジョンは言いました、「贈り物は素晴らしいです。」 " "
最後の行のバックスラッシュは二重引用符の機能を変更するために使用されることに注意してください。バックスラッシュ文字を使用しない場合は、一重引用符も使用できます。二重引用符で囲まれた文字列と一重引用符で囲まれた文字列の大きな違いは、二重引用符で囲まれた文字列では文字列に特別なエスケープ シーケンスを追加できることです。表 3.1 は、PHP が理解できるエスケープ シーケンスを示しています。
表 3.1 エスケープシーケンス
エスケープシーケンス 説明
n 改行
r キャリッジリターン
t タブ文字
$ ドル記号
配列 – 数値を格納するリスト。これらの値は、数値、文字列、または別の配列にすることができます。私は通常、配列変数の開始文字として arr_ を使用します。
オブジェクト -- 変数情報と関数を保存します。詳細については、第 10 章「オブジェクト指向」を参照してください。私は通常、オブジェクト変数の開始文字として obj_ を使用します。
ヒント: 特別な理由がない限り、異なるタイプのデータには区別可能な変数名を使用することをお勧めします。同じ名前を使用する必要がある場合は、名前の複数形を配列変数名として使用してみてください。たとえば、$name をスカラー名として使用し、$names を配列変数名として使用します。これにより、将来のプログラミングにおける混乱が回避されます。
注: PHP の変数名では大文字と小文字が区別されます。これは、$scl_varname、$scl_Valname、$scl_varName、および $scl_VARNAME がすべて異なる変数を表すことを意味します。
各変数タイプについては、この章の次のセクションで個別に説明します。変数に名前を付ける方法、その値を設定する方法、およびその使用方法について説明します。
3.2.1 スカラー
スカラーは、単一の情報を追跡するためによく使用されます。たとえば、顧客の名前や販売数量などです。スカラー名の最初の文字が $ で、2 番目の文字が文字またはアンダースコアである限り、名前から想像できる任意の名前をスカラー名として使用できます。
ヒント: Visual Basic でプログラミングしたことがある場合は、変数に名前を付けるときに特に注意する必要があります。文字列だけでなく、すべてのスカラー名は $ で始まり、$ で終わることはないことに注意してください。
ここでいくつかの変数名を見てみましょう:
* $int_page_number -- 現在のページ番号を保存します。
* $str_magazine_title -- 雑誌のタイトルを保存します。
* $0 -- 変数名が無効です。変数名を数字で始めることはできません。
私はわかりやすい変数名を使用することを好みます。私にとっては、$int_book_number の方がわかりやすいため、$booknum よりも $int_book_number の方が優れています。長いファイル名はプログラムを理解しやすくするため、プログラム内では短い変数名を使用しないことをお勧めします。実際には、PHP 変数名の長さに制限はありませんが、通常は長さを 20 文字未満に制限します。名前が 20 文字を超えると、スペルミスが発生する可能性が高くなります。
わかりやすい名前を使用します。booknum よりも int_book_number の方が適しています。
スカラー名とは何かを理解した後、変数に値を割り当てる方法を見てみましょう。以下のリスト 3.3 に示すように、スカラーへの代入には通常、等号が使用されます。
リスト 3.3 assign_scalars.php3 -- 代入演算子を使用する
$int_page_number=46;
$str_magazine_title = 'PHP は良いです!'
; 上記のコードは変数に値を代入します。 。単純なテキスト値を変数に割り当てる場合は、より効率的であるため、単一記号文字列がよく使用されます。
注: PHP ではコメントの開始に二重スラッシュ (//) を使用します。二重スラッシュ文字以降の文字は無視されます。
変数に値を割り当てた後、必要に応じて値を変更できます。次の例 (リスト 3.4) では、まず変数に値を代入し、次に 2 番目の代入を使用して変数の値を変更します。 2 番目の代入では、元の値が 1 ずつ増加します。
リスト 3.4 change_scalars.php3 -- 変数の値の変更
$int_page_number = 46;
$int_page_number =$int_page_number +1
?> 注: PHP プログラミングでは、宣言は次のようになります。必要はありません。単純なデータ型 (スカラーまたは配列) を定義または割り当てます。変数名の最初の使用は、変数名の定義と同じです。
3.2.2 配列変数
配列とは、単位として処理される一連の数値と文字列です。配列内の各情報は配列の要素とみなされます。たとえば、配列を使用してファイル内のすべての行を保存したり、アドレスのリストを保存したりできます。
配列変数名の最初の文字として数字を使用せず、配列名を作成するときに数字、文字、アンダースコアのみを使用する限り、配列の命名規則を気にする必要はありません変数。
配列要素の初期値を設定するには 3 つの方法があり、各要素に個別に値を割り当てることができます:
$arr_zoo['pelican'] = '大きなくちばしを持つ鳥、 '; ] = '速い猫。 ';
$arr_zoo['horse'] = '4 本足の動物。 '; 次のメソッドを使用して複数の要素に同時に値を割り当てることもできます。 arr_zoo = arry(
'ペリカン' => '大きなくちばしを持つ鳥。'
, 'チーター'=> '速い猫。'
, '馬' => '4本足の動物。'
);
最後に、最も速い方法は、配列内で次の空き位置に要素を追加することです。最初の位置は 0、2 番目の位置は 1 などになります。たとえば、次のコードは $arr_names 配列に 3 つの要素を追加します。これらの 3 つの要素のインデックスはそれぞれ 1、2、および 3 です (この配列に他の要素が存在しないと仮定します)。
$arr_names[] = 'Mitch';
$arr_names[] = 'Gerry';
$arr_names[] = 'Tim';
配列要素に値を割り当てる方法を説明します。これらの値を取得するには。
arr_zoo という名前の配列の値を取得し、配列の添字が 'pelican' である場合は、次のメソッドを使用できます:
$key = 'pelican'
$value = $arr_zoo[$key]
これら 2 つの後にコード行が実行されると、$value の値は「大きなくちばしを持つ鳥」になります。テキスト文字列を使用して、どの配列要素値が必要かを指定することもできます。例:
$value = $arr_zoo[pelican];
配列の添字に使用される文字値は一重引用符で囲まないでください (Perl ではこれを裸の単語と呼びます)。裸の単語を使用できるため、配列の添え字にスペースを含めないでください。
注: 値が割り当てられていない配列要素を読み取る場合、PHP は空の文字列またはゼロの文字列を返します。
PHP 配列の配列添字と配列値はペアで表示されます。配列内のすべての値を表示する便利な方法がないため、このことが問題を引き起こすことがあります。この機能の欠如により、プログラムのテストおよびデバッグ段階でのプログラム開発が妨げられる可能性があります。これらの関数は本書ではまだ言及されていませんが、リスト 3.5 はそのような関数の 1 つを提供します。現時点では、dump_array 関数をブラックボックスとして扱ってください。この本を読むと、この関数の意味が理解できるようになります。この例はテンプレートとして考えてください。プログラム内のコメントでこの関数の使用方法が説明されています。図 3.3 は、dump_array 関数を使用した結果を示しています。
リスト 3.5 dump_array.php3 -- 変数の値の変更
ページ 42、リスト 3.5
注: dump_array 関数は、配列添字と配列値のペアを特別な順序で表示しません。第 4 章では、配列のソートに使用できる関数について説明します。
ページ 43、図 3.3、
図 3.3 dump_array 関数は、配列の添字と任意の配列の値を表示します
上記では、配列の添字として文字列のみを使用しましたが、より積極的に考えてみましょう。次のことを考慮してください。 配列の添字とは何ですか作成された配列の初期値は?
$arr_mixed = array(
1
,434
, 'Jake' => '23 First Lane'
, 'Rebecca'
);
arry_mixed 配列の配列添字はそれぞれ 0、1、Jake、2 です。 。配列インデックスが指定されていない場合は、PHP が自動的にインデックスを提供します。デフォルトの配列添字は 0 から始まり、配列添字に値が割り当てられていない場合、デフォルト値は毎回 1 ずつ増加します。
すべての数値添字 (数値と文字列) をスカラー変数に置き換えても、元の値を取得できます。次のように記述できます:
$key = 1;
echo $arr_mixed[$key];
上の 2 行は 434 を表示します。この例を使用して、PHP が数値データ型を文字データ型に変換する方法を示します。必要に応じて。次のコード行では、配列の添え字が文字列に初期化されます:
$key = '1';
echo $arr_mixed[$key];
これらの 2 行のコードでも、PHP が自動的に実行できることを示しています。文字列を数値に変換します。
場合によっては、配列の初期化中に変数を使用する必要がある場合があります。例:
$int_page_number = 434;
$str_first_name = 'ジェイク';
$arr_mixed = array(
1
,$int_page_number
,$str_first_name => '23 First Lane'
,'レベッカ'
) ;
3.2.3 多次元配列
ほとんどのプログラムでは、単純な値のリストでは十分ではありません。たとえば、本の総ページ数と出版社名の両方を保存したいとします。これには、lst_number_of_pages と lst_publisher_names という 2 つのリストを使用する必要がありますが、これは情報を追加または変更する必要がある場合に非常に不便です。また、2 つのリストの同期を確保すると、隠れた危険も残ります。
多次元配列は、非常に柔軟なデータ構造を提供します。各配列要素には別の配列を含めることができます。残念ながら、多次元配列の名前は長すぎます。私はそれをハッシュ テーブルと呼びたいと思います。メモリ内でデータ構造がどのように構成されているかを反映しています。
注: ハッシュ テーブルのデータ構造が記憶域スペースを効率的に使用する方法と、ドメイン値を迅速に見つけることができる理由については詳しく説明しません。ただし、興味がある場合は、さらに学ぶためにデータ構造に関する本を読むことをお勧めします。
ハッシュ テーブルは次の形式で初期化できます:
$arr_books = array(
'0-679-76781-9' => array(
'name' => 'The Demollished Man'
,'ページ' => 243
,'出版社' => 'ヴィンテージブック'
) '0-312-85395-5' => '名前' =>
, ' ページ' => 349
, '出版社' => 'Tor Books'
)
); 上記の例では、各書籍の ISBN 番号が検索配列 $ のハッシュ テーブル インデックスとして使用されます。 arr_books およびそれぞれの書籍には、固有の情報を記述する独自のサブハッシュ テーブルがあります。サブハッシュ テーブル内の情報をクエリするには、通常の配列の添字を 2 つの添字を使用するように拡張します。たとえば、書籍「The Demolished Man」のページ数を確認するには、次の式
を使用できます。 $arr_books [0-31-85395-5][ページ]
ハッシュ テーブルは非常に柔軟で便利であることがわかります。文字通り、私が作成するすべてのプログラムでハッシュ テーブルを使用します。この重要な理由の 1 つは、ハッシュ テーブルが非常に柔軟に使用できるため、必要な要素をいつでも追加できることです。プログラムの実行中に著者の名前も保存する必要がある場合は、次の情報をハッシュ テーブルに追加するだけで問題ありません:
$arr_books[0-312-85395-5][author] = 「オーソン・スコット・カード」。
ハッシュ テーブルのデータ構造により、他のデータに影響を与えることなくアイテムをサブハッシュ テーブルに追加できることに注意してください。 PHP を使用して複数のデータベース テーブルから情報を収集し始めると、ハッシュ テーブルを使用して情報を結合できます。たとえば、複数の製品サプライヤーが関与する製品データベースを使用する場合、最初の製品サプライヤーから始まるハッシュ テーブルに関連情報を格納できます。次に、2 番目の製品サプライヤーの情報が読み取られ、この新しい情報が同じハッシュ テーブルに書き込まれます。すべての製品サプライヤー情報が読み取られ、ハッシュ テーブルに書き込まれると、このハッシュ テーブルにはすべての在庫情報が含まれます。
前に示した 3.5 リストの関数 dump_array は、ハッシュ テーブルの組織構造を明確にします。図 3.4 に、dump_array 関数を使用して説明したハッシュ テーブル $arr_books の構成を示します。
ページ 46、図 3.4
図 3.4 dump_arry 関数を使用して表示されたハッシュ テーブル
3.2.4 変数置換
二重引用符で囲まれた文字列には、変数が関係するためこれまで説明しなかったもう 1 つの機能があります。 PHP 変数の仕組みについては理解できたので、二重引用符で囲まれた文字列についてもう少し詳しく説明します。
変数置換とは、PHP が変数の名前を二重引用符で囲まれた文字列内の値に置き換えることができることを意味し、この概念を変数がその値を表すという通常の意味に拡張します。たとえば、$int_count が 14 の場合、$int_count + 14 は実際には 14 + 14 になります。 PHP およびほとんどのコンピューター言語では、この置換は文字列内で行われます。例:
$str_size = 'big';
echo "Jack was a $str_size man. ";
は、
Jack was a big man と表示されます。句読点以外の文字を使用すると発生します。次のコード スニペットは、これがどのように起こるかを示しています:
$str_size = 'big';
echo "Jack was a $str_sizeger man. ";
PHP は、後に続く文字列 ('ger') ($str_size) を検索しません。 ) ですが、$str_sizeger という名前の変数を探します。変数名を中括弧で囲むと、この問題を解決できます:
$str_size = 'big';
echo "Jack was a ${str_size}ger man. "; 変数置換を何度も使用した後、文字列変数は非常に自然になります。リスト 3.6 は変数置換の例をいくつか示しています。
リスト 3.6 interpolation.php3 -- 変数置換の例
ページ 47 7 行目 = ページ 48 13 行目リスト 3.6
図 3.5 は、ハッシュ テーブル $arr_books には 3 つのレベルがあり、3 番目のレベルには書籍が含まれていることを示しています。 。通常の状況では、次のような方法でハッシュ テーブルの名前付き要素にアクセスできます:
echo "The name is
$arry_books[lst_books][0-679-76781-9][name].";
// 前のコード行では PHP 解析エラーが発生します
ページ 48 図 3.5
図 3.5 変数置換にスカラー変数と配列変数を使用する
残念ながら、変数置換を使用する場合、PHP3 ではそれ以上の変数の使用が許可されません。同時に複数の配列の添字。 PHP で書籍名に安全にアクセスする方法は次のとおりです:
$second_level = $arr_books[lst_books];
$third_levwl = $second_level[0-679-76781-9]
echo "名前は $third_level[name] です。 ]. ";
3.2.5 動的変数名
PHP では、ユーザーが変数名を動的に作成できます。プログラムの実行中に、特殊記号を使用して新しい変数名を作成できます:
// 動的変数の名前を保存します
$scl_dynamic = 'str_name';
// 動的変数に値を割り当てます。 $scl_dynamic = 'John';
echo "$str_name = $str_namen";
このプログラムでは、
$str_name =John
と表示されますが、動的変数名には使いやすい点がいくつかあります。私の何年ものプログラミング経験の中で、それらを使用する必要性を感じたことは一度もありません。配列は、動的変数名の使用を必要とするほとんどの問題を解決できる十分な柔軟性を備えている必要があります。
3.3 定数
定数を使用すると、簡単な方法でプログラムを読みやすくすることができます。 BUFFER_SIZE を使用すると、1024 を直接使用するよりもプログラムが理解しやすくなります。さらに、ほとんどの定数はプログラム ファイルの先頭で定義されているため、変更は非常に簡単です。
数値定数と文字列定数を同時に定義できます。次の例は、これを行う方法を示しています。定数名の前に $ 記号を追加することを除けば、定数値へのアクセスは変数値へのアクセスと非常に似ています。上記で定義された 2 つの定数には、次の方法でアクセスできます:
echo 'PI = ' .
最初の $ 記号が使用されていないため、変数置換は定数ではうまく機能しません。
3.4 オペレーター
オペレーターは、コンピューターに実行すべき操作を指示します。オペレーターは、車の運転手に「左折」または「右折」コマンドを発行しているかのように考えることができます。これらのコマンドは方向演算子と考えることができ、加算または減算の数学演算子と同じように動作します。一方、車の走行中にドライバーに「停止!」と叫ぶと、他のコマンドは無効になります。つまり、「停止」の指令レベルは「左折」「右折」よりも高い。
これで、ほとんどの PHP 演算子については理解できたはずです。演算子を学習するときは、すでに知っている定義の一部が依然として当てはまる可能性があるので、直感を信じてください。
すべての演算子はオペランドを指示します。いわゆるオペランドは、操作を実行できるオブジェクトです。実際、オペランドは値、変数、または式を指します。この章の前半で、値と変数とは何かを学びました。式とは、演算子とオペランドで構成され、演算を実行するユニットを指します。
オペランド自体には再帰的なプロパティがあります。 PHP では、2 つのオペランドと除算記号で構成される式 4/2 は、値が 2 のオペランドと考えることができます。別の例を見てみましょう。式 (5+9)-7 は 2 つのオペランドとマイナス記号で構成され、最初のオペランドは (5+9)、2 番目のオペランドは 7 です。
3.4.1 演算子の優先順位
どのコンピュータ言語においても、演算子の優先順位の問題は非常に重要であり、PHP も例外ではありません。いわゆる優先度は、どの演算子が最初に評価されるべきかを示します。 PHP は、関連性に基づいてどの演算子を一緒に配置するかを決定します。たとえば、マイナス演算子は、その右側のオペランドに直ちに影響を与えるため、右から左への依存関係があります。気づいていないかもしれませんが、配列要素にアクセスするために使用される角かっこも演算子です。表 3.2 にはすべての演算子が含まれていますが、それらの優先順位は気にする必要はありません。経験から、演算子の優先順位は算術演算子と論理演算子にのみ影響することがわかります。
表 3.2 は一連の演算子であり、優先度に従ってレベルに分割されています。レベルが高いほど、優先度も高くなります。同じレベルの演算子は同じ優先順位を持ち、左から右に評価されます。それ以外の場合は、優先順位の高い演算子が最初に評価されます。かっこを使用すると、優先順位を正確に制御できます。かっこ内のものが最初に評価される必要があります。
表 3.2 優先順位と演算子の相関関係
レベル
演算子
説明
関連性
15
=>
配列定義内の配列の添字と値を連結する
左から右へ
14
- >クラス演算子
左から右へ
13
? :
三重演算子
左から右へ
12
<、<=、>、>=
未満、以下、以上、以上to
いいえ
11
==、!=、<>
等しい、等しくない、等しくない
いいえ
10
+、-、!、~
正符号、負符号、論理和、ビット変換
右から左
09
++, --
プラス1、マイナス1
左から右
08
<<, >>
左シフト、右シフト
左から右
07
/, *, %
除算、乗算、法
左から右
06
+, -
加算、減算
左から右
05
&, .
ビット論理AND、文字列連結
左から右
04
|, ^
ビット論理OR、ビットごとの論理XOR
左から右へ
03
||, &&
論理OR、論理AND
左から右へ
02
=, +=, - =,
*=, / =、.=、
%=、&=、|=、
^=、<<=、>>=
代入演算子
左から右へ
01
or
and
xor
低優先度 or
低優先度の XOR
低優先度
左から右
個々の演算子の例について説明する前に、演算子の優先順位に関するいくつかの具体的な例を見てみましょう。このようにして、表 3.2 にリストされている優先レベルを確認できます。
次の例は、算術マイナス演算子がプラス 1 演算子よりも高いレベルであることを示しています:
$a = 5;
echo "a = $a
"; = $b
";
上記のコード行の結果は、
a = 6
b = 5
変数 $a が 1 つインクリメントされる前に、変数 $b には次の値が割り当てられます。 $a。ここで、負の算術プラス記号が適用される前に何が起こるかを見てみましょう:
$a = 5;
echo "a = $a
"; br>";
上記のコード行の結果は、
a = 6
b = -5 と表示されます
変数 $a の値 (つまり -6) に対してのみ負の演算を実行し、追加します演算時、変数$bの最終結果値は-5になります。これは、マイナス演算子がプラス演算子よりも高レベルであることを証明します。 1
括弧内の演算は常に最初に実行されるため、次の例は、除算記号がプラス記号よりも高いレベルであることを明確に示しています:
// 最初の 2 つのオペランドを括弧で囲みます。
echo "
";
// 2 番目の 2 つのオペランドを括弧で囲みます。echo 5 + (9 / 2);
echo "
";
echo "
";コードの行は Display:
7
9.5
9.5
最後の行はデフォルトの優先順位での結果を示しています。結果 (9.5) は 2 行目の結果と一致しているため、除算が行われたと結論付けることができます。演算子はプラス演算子の前に実行されます。
等号演算子も他の演算子と同様の演算子であり、これも重要です。この概念は直感的には分からないかもしれませんが、次の例で説明します。
まず、単純な代入ステートメントを使用して、変数 $a を 1 に設定します。
$a = 1;
右オペランド (1) は左オペランド ($a) に値を代入します。ここで、ある代入の結果を別の変数に代入する複雑な例を見てみましょう:
$b = $a = 1;
上記のコード行は、次の計算により、数値 1 を変数 $b に代入します。 $ a = 1 の結果は 1 です。混乱を招く可能性があるため、プログラムでこのスタイルを使用することはお勧めしませんが、場合によっては使用することもできます。次に、上記のコード行に and 演算子を追加しましょう。このようにして、変数 $b に 0 が代入されるか 1 が代入されるかという問題は解決されます。 = 演算子の優先順位が and 演算子よりも高い場合、変数 $b には値 $a = 1 が割り当てられます。 and 演算子の優先順位が = 演算子よりも高い場合、$b には値 1 と 0、つまり 0 が割り当てられます。
$b =$a =1 and 0;
上記の行の後コードが実行されると、その結果、変数 $a と変数 $b の値は両方とも 1 になります。このように、= 演算子は比較的高い優先順位を持っていると結論付けることができます。
and 演算子を最初に実行する (優先度を人為的に高める) 場合は、次のパターンを使用できます:
$b = (($a = 1) and 0);
上記のコード行の結果つまり、$a には 1 が割り当てられ、$b には 0 が割り当てられます。
この章の残りの部分では、さまざまな演算子に焦点を当て、それらがどのように機能するかについて説明します。 => 演算子については、この章の「配列変数」セクションで説明しました。 -> 演算子については、第 10 章「オブジェクト指向」でも説明します。
3.4.2 トリプル演算子
トリプル演算子は、与えられた条件の下で 2 つのオプションから選択することです。例: 公園が 1 マイル以内にある場合、ジョンはそこまで歩きます。そうでない場合は、車でそこに行きます。構文は次のとおりです:
CONDITION-PART ? TRUE-PART : FALSE-PART
これは、次のステートメントの短縮形です:
if (CONDITION-PART) {
TREU-PART
} else {
FALSE -PART
}
if ステートメントの詳細については、第 4 章「プログラム制御」を参照してください。
トリプル演算子とそのオペランドが実行された後、結果の値は通常、変数に割り当てられます:
$bin_page_two = ($int_page_number == 2) 1 : 0; $bin_page_two の値は、次の条件によって異なります。このステートメントは、部分的な CONDITION-PART($int_page_number==2) 操作の結果です。 CONDITION-PART の結果が true の場合、TRUE-PART の値が $bln_page_two に割り当てられます。 CONDITION-PART の結果が false の場合、FALSE-PART の値が $bln_page_two に割り当てられます。
bln_ 接頭辞は、この変数が論理値のみを保持する必要があることを示します。つまり、1 か 0 のみが保存されます。
一部の参考書では、トリプル演算子は条件演算子とも呼ばれ、コードのどの部分が実行されるかを制御するためによく使用されます。ただし、プログラムが読みやすくなる可能性があるため、この演算子の使用はお勧めしません。
以下の例では、これらのステートメントがいかに混乱しているかがわかります。 3 つ以上のオプションを考慮する必要がある場合、トリプル演算子を別のトリプル演算子の中にネストできます。ただし、次の例を見ると、このコードがいかに混乱しているかがわかります。
1 ? $int_firstVar++ : $int_firstVar++;
$int_number_of_files++ :
($int_temp == 1 ?
$int_number_of_record) s++ :
($int_number = = 3 ?
$int_number_of_bytes++ :
$int_number_of_errors++));
この方法でプログラミングすると、プログラムの理解と保守がより困難になります。 if文を使うとプログラムが美しくなり、コードの保守が楽になります。詳細については、第 4 章「プログラム制御」を参照してください。
3.4.3 算術演算子
算術演算子は学校で学んだ内容を反映しています。加算、減算、乗算、除算は、ほとんどの算術文の最も基本的なものです。モジュロ演算子は少し難解で、2 つのオペランドの除算の余りを受け取ります。たとえば、10 % 7 は 3 に等しくなります。これは、10 / 7 が 1 に等しく、余りが 3 であるためです。
プログラムがリストをループし、数項目ごとにコードを実行する必要がある場合、モジュロ演算子の役割は計り知れません。リスト 3.7 は、10 項目ごとにコードを実行するときに何をすべきかを示しています。
リスト 3.7 modulus.php3 -- 10 項目ごとにメッセージを表示する
for ($index = 1; $index if ($index % 10 == 0) ) {
echo "$index
";
}
}
?>
このプログラムの出力は図 3.6 のようになります。
図 3.6
図 3.6 では、モジュロ演算子を使用して 10 個のループ項目ごとに表示されます
10 個の項目ごとに表示されることに注意してください。モジュロ演算子の右側の値を変更すると、メッセージが表示されるまでに無視される項目の数が変更されます。これを 15 に変更すると、メッセージは 15 項目ごとに表示されます。第 4 章「プログラム制御」では、if 文と for 文について詳しく説明します。
3.4.4 条件演算子
これらの条件演算子は、1 つの変数 (または数値) と別の変数の間の関係をテストします。たとえば、5 は 12 より大きいですか?条件演算子とそのオペランドの評価結果は、常に true (値 1) または false (値 0) になります。表 3.3 に、PHP の条件演算子を示します。
表 3.3 PHP の条件演算子
演算子 説明
等価演算子
op1 == op2 op1 が op2 と等しい場合、true を返します。
たとえば、6==6 は true です。
op1 != op2 op1 が op2 と等しくない場合に true を返します。
たとえば、6!=7 は true です。
op1 <> op2 op1 が op2 と等しくない場合、true を返します。
たとえば、6<7 は true です。
比較演算子
op1 < op1 が op2 より小さい場合、true を返します。
たとえば、6<7 は true です。
op1 <= op2 op1 が op2 以下の場合に true を返します。
たとえば、7<=7 は true です。
op1 > op2 op1 が op2 より大きい場合、true を返します。
たとえば、6>5 は true です。
op1 >= op2 op1 が op2 以上の場合に true を返します。
たとえば、7>=7 は true です。
注: 等号演算子は 1 つではなく 2 つの等号であることを認識することが非常に重要です。このルールを忘れて、テスト条件で単一の等号を使用してしまうことがよくあります。この間違いは、プログラミング中によく発生します。
3.4.5 単項演算子
単項演算子は 1 つのオペランドにのみ影響します。これらは一般に、オペランドの符号を変更したり、オペランドの値を 1 ずつ増減したりするために使用されます。 1 を追加することは、元の値に 1 を追加することを意味し、1 を減算することは、元の値から 1 を減算することを意味します。表 3.4 に、PHP の単項演算子のリストを示します。
表 3.4 単項算術演算子
演算子の説明
+op1 オペランドの符号を同じに変更
-op1 オペランドの符号を反対に変更
!op1 オペランドの論理否定を取得
~op1 ビットを変換オペランドの値
++op1 オペランドが有効になる前に、オペランドの値が 1 増加します
--op1 オペランドが有効になる前に、オペランドの値が 1 減少します
op1++ オペランドが有効になった後、オペランドの値が 1 増加します
op1-- オペランドが有効になった後、オペランドの値が 1 つ減ります
単項演算子が導入されたとき、使いにくい負の数が加算されるため、演算子は複雑になりました。 345 + -23 のような数学的ステートメントを書ける人はほとんどいません。ただし、PHP では、ステートメント 354 + $int_gas_bill を使用できます。ここで、$int_gas_bill は、$23.00 の負債を表します。つまり、負の数です。
プラス演算子を使用しても効果はなく、PHP はそれを無視します。 1 つのマイナス演算子で、正の数を負の数に、または負の数を正の数に変えることができます。たとえば、$int_first という名前の変数がある場合、その値は 34 です。表示すると、-$int_first は -34 と表示されます。
論理 NOT (!) 演算子は、論理的真実を論理的偽に変換するためによく使用されます。たとえば、!34 はゼロ、!0 は true です。
注: 論理的な true 値は 1、論理的な false 値は 0 です。
ビット変換演算子とは、オペランドの各ビットを1から0、0から1に変換することを指します。私の 20 年間のプログラミングの中で、この演算子を使用しなければならないと感じたことは一度もありません。したがって、この例を紹介することに時間を費やすつもりはありません。
++ または -- 演算子が演算子の前にある場合、オペランドの値は有効になる前に 1 ずつ増加または減少します。 ++ または -- 演算子が演算子の後にある場合、オペランドの値は、必要に応じて有効になった後に 1 ずつ加算または減算されます。リスト 3.8 は、increment-by-one 演算子の使用方法を示しています。 3.8 Preincrement.php3-- Add-One Operator&lt;
// 新しい方法
$int_number_of_pages = 5;
echo "++$int_number_of_pages
";
このプログラムを実行した結果は次のとおりです:
6
6
メソッドは元のメソッドよりも優れています。一部のコーディングメソッドは短くなります。ステートメント echo "++$int_number_of_pages
" は、まず $int_number_of_pages 変数を 1 つ増やしてから、echo コマンドを実行します。
最初に 1 つ減算演算子の使用は、最初に 1 つ加算演算子の使用と同じです。次の例 (リスト 3.9) は、append 演算子の使用方法を示しています。
リスト 3.9 postincrement.php3 -- postincrement 演算子を使用する
// 元の方法
$int_number_of_pages = 5;
$int_number_of_pages = $int_number_of_pages;
エコー " $int_number_of_pages $int_current_page_number
";
// 新しい方法
$int_number_of_pages = 5;
$int_current_page_number = $int_number_of_pages++;
echo "$int_number_of_pages $int_current_page_number
?> このプログラムを実行した結果は次のとおりです:
6 5
6 5
ステートメント $int_current_page_number = $int_number_of_pages++ は、最初に変数 $int_number_of_page を $int_current_of_page に変更し、変数 $int_number_of_page の値を 1 つ増やします。この例は、後置インクリメント演算子と後置デクリメント演算子が代入演算子の左側の変数の値に影響を与えないことを理解するのに役立ちます。最後のプラス 1 演算子と最後のマイナス 1 演算子が表示された場合は、それらを無視して、最初にステートメントを実行します。次に、実行が完了したら、必要に応じて最後のプラス 1 演算子と最後のマイナス 1 演算子を使用します。
3.4.6 ビット演算子
ビット シフト演算子は、表 3.5 に示すように、オペランド内のすべてのビットを指定された回数だけ左または右に移動するためによく使用されます。ビット演算子は、整数値を乗算または除算する必要がある場合に便利に使用できます。たとえば、値 3 は、2 進数の 11、つまり ((1*2)+1) に等しい場合もあります。バイナリの各ワードは、コンピュータ メモリ内で変更できる最小単位であるビットを表します。
表 3.5 ビット演算子
演算子
説明
op1 << op2
左シフト演算子は、ビットを左に移動し、左端のビットを破棄し、右端のビット位置を 0 のままにします。左への各シフトは op1 に 2 を乗算したものと同等ですが、より効率的です。
op1 >> op2
右シフト演算子はビットを右に移動し、右端のビットを破棄し、左端のビット位置を 0 のままにします。右への各シフトは op1 を 2 で除算することと同等ですが、より効率的です。
op1 & op2
2 つのオペランドに対応するビットを演算子と比較します。両方のビットが 1 の場合、結果は 1 であり、それ以外の場合は 0 が返されます。
op1 | op2
OR 演算子は 2 つのオペランドの対応するビットを比較し、どちらかが 1 の場合は 1 を返し、それ以外の場合は 0 を返します。
op1 ^ op2
XOR 演算子は 2 つのオペランドの対応するビットを比較し、同じでない場合は 0 を返します。
次の例では、>> 演算子を使用して 4 による除算を表します。
$int_a = 128;
$int_b = $int_s > 演算前後の変数のビット パターン。まず、$int_a には 128 (10 進数) または 10000000 (2 進数) が割り当てられます。次に、$int_a の値が左に 2 回シフトされます。したがって、移動された値は 00100000 または 32 となり、変数 $int_b には 32 が代入されます。
ビットを右にシフトすると、右端のビットが失われます。次の例では、8 で除算する代わりに >> 演算子が使用されます。このプログラムを実行した結果は次のようになります。
16
16 のビット値は 00010000 なので、右端のビットが消えていることがわかります。以下は << 演算子を使用した例です。 128 に 8 を掛けます:
$int_a = 128;
echo "$int_b
";
1024
ご覧のとおり、値 1024 は 8 ビットで表現できる最大値です。これは、使用できるビットが 1 バイトに限定されていないことを示しています。実際、PHP がスカラーを使用して表現できるバイト数には制限があり、ほとんどの場合、この制限は 4 です。
3.4.7 文字列連結演算子
文字列加算演算子は、2 つの文字列を連結します。 2 つのオペランドのうちの 1 つが数値の場合、自動的に文字列に変換されます。以下に示す例では自動変換が実行されます。
$str_a = "このボックスには " . 55 . " 項目を保持できます。";
これらのコードを実行した結果は次のとおりです。 :
このボックスには 55 個のアイテムを入れることができます
数字 55 は自動的に文字列に変換され、他の文字列と結合されます。最終的な文字が生成されると、文字テキスト内にスペースが含まれ、数字の周囲にスペースが含まれるため、文章が読みやすくなります。
以下に示すように、変数をオペランドとして使用して接続操作を実行することもできます。
$str_c = $str_b; ;";
これらのコードを実行した結果は次のとおりです:
AAABBB
文字列を連結するときにスペースやその他の区切り文字を追加する必要がないことに注意してください。連結後の文字列間にスペースを入れたい場合は、少なくとも 1 つの文字列の最初の文字列の末尾または 2 番目の文字列の先頭にスペース文字が含まれていることを確認する必要があります。
3.4.8 論理演算子
論理演算子は、true/false 論理演算とも呼ばれるブール論理演算を実行します。次のような文では、「ジョンが熱を持っていて、鼻づまりや耳が痛くて、年齢が 60 歳以下の場合、ジョンは風邪をひいています。」という単語は、「および」、「または」、「ではない」です。論理演算子。
論理演算子は、プログラムの if または while 制御ステートメントでよく使用されます。制御文については次章「プログラム制御」で説明しますが、ここではまず論理演算子について説明します。 PHP の論理演算子を表 3.6 に示します。
表 3.6 論理演算子
演算子の説明
op1 && op2 2 つのオペランドに対して論理 AND 演算を実行します
op1 || op2 2 つのオペランドに対して論理 OR 演算を実行します
op1 および op2 2 つのオペランドに対して論理 AND 演算を実行します 演算
op1 または op2 は、 2 つのオペランドの論理 OR 演算
op1 xor op2 は 2 つのオペランドの論理 XOR 演算を実行します
論理演算子はプログラムを制御し、複数の異なる条件に基づいてどのようなアクションを実行するかを決定できます。各演算子とオペランドは、true または false の値を生成します。次の例では、論理条件を使用するいくつかの異なる方法を示します。
論理 AND 演算子 (&&) は、両方のオペランドが true であるかどうかを判断するために使用されます。表 3.7 は、AND (&&) 演算を使用した 4 つの異なる組み合わせの結果の値を示しています。
表 3.7 AND (&&) 演算結果テーブル
op1 op2 op1&&op2
0 0 0
1 0 0
0 1 0
1 1 1
次のコードは、AND (&&) 演算子の使用方法を示しています。 ($int_a == 10 && $int_b == 9) {
echo 'Error!'
};
2 つのオペランドの少なくとも 1 つが false の場合、echo コマンドは実行されません。ちなみに、この例では == 演算子の方が && 演算子よりも優先されることがわかります。各 == 演算子が最初に実行され、結果の値が && 演算子の 2 つのオペランドとして扱われます。
or 演算子 (||) は、2 つのオペランドのいずれかが true であるかどうかを判断するために使用されます。表 3.8 は、OR (||) 演算を使用した 4 つの異なる組み合わせの結果の値を示しています。
表 3.8 Or (||) 演算結果テーブル
Op1 op2 op1||op2
0 0 0
1 0 1
0 1 1
1 1 1
以下のコードは、or (||) の使用方法を示しています。演算シンボル:
if ($int_a == 10 || $int_b == 9) {
echo 'Error!'
};
2 つの == 演算子の結果のいずれかが true の場合、両方が実行されます。エコーコマンド。
論理 AND 演算子と論理 OR 演算子には短絡特性があります。論理 AND 演算子の目的は、両方のオペランドが true であるかどうかを判断することです。 PHP が最初のオペランドが false であると判断した場合、2 番目のオペランドを決定する必要はありません。論理 OR 演算子の目的は、2 つのオペランドの少なくとも 1 つが true であるかどうかを判断することです。最初のオペランドが true の場合、2 番目のオペランドを評価する必要はありません。
注意しないと、短絡特性がエラーの原因となる可能性があります。たとえば、次のコード スニペットでは、$int_a++ の実行結果が true の場合、変数 $int_b は 1 ずつ増加しません。
if ($int_a++ || $int_b++) {
echo "true
";
echo "a=$int_a b=$int_b
";
注意: 次のコードを使用する可能性があります。 $int_a が 9 または 10 に等しいかどうかを判断します。しかし、これはやめてください。
if ($int_a == (9 ||10)) {
echo "Error!
"
};
PHP は上記のコードを正しく実行できません。 $int_a をテストする正しい方法は、真であるかどうかをテストする必要がある各サブ条件を明示的に記述することです。正しいコード方法は次のとおりです:
if ($int_a == 9 || $int_a == 10) {
echo "Error!
"
};
AND、OR、および XOR の優先順位は低くなります。優先順位の高いものと同じ操作を実行できます。ただし、優先度が低いため、if ステートメントを書き直すことなく、条件付きで一部のコードを実行するのに最適です。残念ながら、優先順位の低い論理演算子の使用法のほとんどは関数に関係していますが、このトピックについては本書では取り上げていません。関数の詳細には触れずに、OR 演算子の例を見てみましょう。
すべての PHP 関数は値を返し、この値はオペランドとしてよく使用されます。したがって、プログラム フローを制御するために、演算子の短絡特性がよく使用されます。 OR 演算子の最初のオペランドが true の場合、2 番目の演算が実行されます。一方、最初の操作の結果が false の場合、2 番目の操作が実行されます。ほとんどの関数は、関数内でエラーが発生すると false を返します。したがって、OR 演算子は、エラーが発生した場合にのみコードを実行するために使用できます。例:
0 または die("プリンターへの接続の問題。
");
echo "プログラム オーバー。
";
これらのコードを実行した結果は、
プリンターへの接続の問題です。
OR 演算子の左側のオペランドを 1 に変更すると、
Program Over が表示されます。
3.4.9 代入演算子
この章で前述した例では、基本的な代入演算子が使用されています。基本的な代入演算子に加えて、PHP には、単純な代入演算子を別の演算子と組み合わせたショートカット代入演算子がいくつかあります。たとえば、$int_a = $int_a / $int_b と記述する代わりに、$int_a /= $int_b と省略できます。ショートカット演算子を使用する利点は、入力する文字数が減ることに加えて、代入演算子を使用する目的も明確になることです。
表 3.9 は、PHP のすべての代入演算子のリストです。次の表で説明されている演算子はすべて、この章の他の場所でさまざまな演算子タイプの説明を読んだ後であればよく理解できるはずです。
表 3.9 代入演算子
演算子 説明
var = op1 op1 の値を var に代入します。
var += op1 は、var+op1 の値を var に代入します。
var -= op1 は、var-op1 の値を var に代入します。
var *= op1 は、var*op1 の値を var に代入します。
var /= op1 は、var/op1 の値を var に代入します。
var %= op1 は、var%op1 の値を var に代入します。
var .= op1 は、var.op1 の値を var に代入します。
var &= op1 var&op1 の値を var に代入します。
var |= op1 は、var|op1 の値を var に代入します。
var ^= op1 は、var^op1 の値を var に代入します。
var <<= op1 var<
var >>= op1 var>>op1 の値を var に代入します。
代入演算子には直感的ではない別の側面があることがわかります。代入演算子は他の演算子と同じように使用できます。たとえば、次のコードは変数 $int_a と $int_b の両方に 3 を割り当てます:
$int_a = $int_b = 3;
3.5 概要
この章では、値、変数、定数、および演算子の概念を紹介しました。数値はソースコードに直接配置され、プログラムはその値を変更できません。変数は、プログラム データが保存されるコンピュータ メモリに配置されます。必要に応じて異なる値を割り当てることができるため、変数と呼ばれます。定数は基本的に名前付きの数値 (π など) であり、プログラムのアーカイブに役立ち、コードの整理が容易になります。オペレーターはコンピューターに何をすべきかを指示します。
数値はハードコードされた数値と呼ばれることもあります。数値とその 3 つの異なる表現、10 進数、8 進数、16 進数についてはすでに理解している必要があります。非常に大きい値または非常に小さい値は、科学表記法を使用して記述することができます。
文字列は少し複雑です。一重引用符文字列、二重引用符文字列、およびバックティック文字列はすべて、一連の文字を保存するためによく使用されます。バックティック文字列には別の機能があり、PHP に文字列を実行のためにオペレーティング システムに送信するように指示します。
エスケープ文字は、キーボードから入力するのが難しい文字を表すため、またはその文字が他にも多くの用途があることを表すためによく使用されます。たとえば、二重引用符で囲まれた文字列内で二重引用符を使用すると、入力文字列が実際に終了する前に終了する可能性があります。バックスラッシュ文字は、元の意味を変更するために使用されます。
スカラーと配列という 2 種類の変数について学習しました。スカラーは、単一の数値またはテキスト文字列を保持します。配列変数は一連のスカラーを保持します。配列内の各要素には配列インデックスが関連付けられているため、配列はインデックスと値のペアを格納する方法です。配列に別の配列が含まれている場合、それは多次元配列またはハッシュ テーブルです。多次元配列またはハッシュ テーブルは、添え字と値のペアの値が配列の場合に作成されます。
変数置換は、変数を文字列内の値に置き換えるのに使用されます。ただし、変数置換は 2 レベル以上の深さの配列では使用できません。
動的配列名を使用すると、いつでも変数名を作成できます。 PHP 配列では複雑なデータ構造を作成できるため、この機能は必要ないと思います。
プログラム内で同じ数値が複数出現する場合は定数を作成する必要があります。定数を使用して、アーカイブ要素をプログラムに追加できます。また、プログラムの先頭で定数を定義しておくとプログラムの修正が容易になります。
演算子がどの演算を実行するかを PHP に指示する方法を学習しました。一部の演算子は優先度が高いため、演算子とそのオペランドが最初に実行されます。オペランドは、数値 10 のような単純な場合もあれば、変数、数値、その他の演算子を含む非常に複雑な場合もあります。これは、それらが本質的に再帰的であることを意味します。
PHP には多くの種類の演算子があり、そのほとんどについてはこの章で説明します。最初に三重演算子と算術演算子が導入され、次に条件演算子と単項演算子が導入されました。この章では、インクリメント演算子とデクリメント演算子、その後にビット単位の論理演算子も紹介します。シフト演算子は、高速な整数の乗算と除算が必要な場合に使用されることがあります。
文字列連結演算子は 2 つの文字列を接続するためによく使用され、代入演算子は変数に値を代入するために使用されます。ほとんどの代入演算子には省略形があり、これにより入力が減るだけでなく、代入の意味がより明確になります。