ホームページ >バックエンド開発 >PHPチュートリアル >PHP 学習ガイド - 第 6 章 (続編)
文字列内の改行文字
PHP には改行文字のエスケープ シーケンス (
) が用意されていますが、文字通り文字列の途中に改行文字を追加できることも知っておくと便利です。PHP はこの形式を次のように処理できます。良い。これは、HTML 文字列を作成するときに便利です。ブラウザーは (
) 改行文字を無視するため、文字列を改行文字でフォーマットして、PHP コード行を短くすることができます。最初の 2 行の末尾では「Enter」キーが隠されています。これらの改行記号は文字列内に保持されるため、print ステートメントは 3 行の PHP 出力を生成できます (行の長さはさまざまなエディターによって異なります)。表示時にエディターが折り返すと、実際には 3 行の長いコード行が表示されます)。ただし、ブラウザ プログラムはこれらの改行を無視し、表示時に改行するかどうか、またどこで改行するかを決定します。また、ブラウザのビュー ソース コードを使用してソース コードを観察すると、これらの改行が表示されます。
制限事項
利用可能なメモリ制限内である限り、文字列の長さに人為的な制限はありません
配列
PHP の配列型はプログラマに許可されています。さまざまなタイプの値がまとめて整理され、単語ごと (場合によっては名前ごと) にインデックスが付けられます。 $thing1、$thing2、$thing3 のような名前の変数を使用している場合は、配列 ($things[1]、$thing[2]、$thing[3] など) を使用することをお勧めします。配列要素には角かっこ内のインデックス (この例では [1]、[2]、[3] など) を使用してアクセスし、異なる型の要素を同じ配列に割り当てることができます。
PHP 配列を学ぶ最良の方法は、例を通して学ぶことです。最初の指定の前後で配列変数の内容を表示するための簡単なプログラム例をいくつか示します:
最初の指定の前後で何が起こるかを説明しましょう。名前にもかかわらず、指定する前は、PHP は変数 $my_array の目的が配列であることを認識せず、それを他の変数と同様に未指定の変数として扱うだけです。これは、変数が二重引用符で囲まれた文字列で囲まれている場合、変数は空の文字列として解釈されることを意味します。配列インデックスが未指定変数([5])を参照している場合、それも未指定変数として使用されます。その結果、最初の 3 つの print ステートメントはすべて [is] で終わります。
指定後、$my_array は正式に配列となり、ダブルクォーテーションで囲まれた文字列が含まれる場合は、結果として「Array」という文字列が出力されます。番号 5 でインデックス付けされた配列セルには文字列「Slot#6」が入力されているため (実際、ほとんどのプログラミング言語では、配列要素は 0 から数えられます)、インデックス番号 5 を使用して文字列を取得できます。変更されたのはこれだけです。$my_array のセル 0 にはまだ何もないため、以前と同様に変更はありません。
配列の実行
配列は、PHP の最もクールで最も便利な機能の 1 つですが、他の言語の配列と似ていますが、実際にはまったく異なる方法で実装されます。
ほとんどのプログラミング言語では、次のようなステートメントを使用して配列を宣言します:
Int int_array[10] ;//これは PHP 構文の調和ではありません。
このステートメントは、メモリ内に合計 10 個の連続する整数を設定します。これらの変数は、0 から 9 の int_array 範囲内の数値インデックスに従ってアクセスできます。
一方、PHP 配列は相互に組み合わせることができ、配列仕様を作成する場合、実際には新しい列が追加され、新しいインデックスと組み合わせて、値を取得することができます。あなたはハッシュ テーブル プログラミングに精通していますが、PHP 配列は他の言語のハッシュ テーブルに似ています。]
ここでヒントの 1 つは、読者は非常に多くの数の配列セルを指定することを心配する必要がないということです。たとえば:
My_ayyay[100000000]= “怖くない”//これは問題ありません
この設定では実際には多くのグリッドはなく、中央のグリッドは存在しないため、メモリを消費しません。
配列インデックスとしての文字列
これまでの配列の例では、数値のインデックスとして整数のみを使用していました。実際、PHP では、次のように文字列値をインデックスとして使用することもできます。
$tasty['Spanish']= "paella ";
$tast ['日本']= "刺身";
$tast ['スコットランド']= "ハギス?";
これらのインデックスは、数値インデックス、数値および文字列インデックスと同じように使用されます。同じアレイ上で使用でき、競合することはありません。
構造タイプが欠落しているのはなぜですか?
一部のプログラミング言語 (C、Pascal) は、異なる型の変数を一緒にパッケージ化できる「構造」型または「レコード」型を提供します。このような言語では、複合型を選択するための基本原則は、水の量を含むすべての値が同じ型である場合は、それ以外の場合は構造体を使用するというものです。
現在、PHP にはオブジェクト型があり、より特別な属性に加えて、レコード型や構造型と同様の特性もあります。ただし、オブジェクトを導入する前に、PHP 配列は 1 つのタイプの値のみを使用することに限定されないため、PHP には実際には構造型は必要ありません。コード辞書を構造化言語から PHP に移行する場合、考えられる可能性の 1 つは、結合可能な配列を使用し、元のフィールド名に対応する文字列インデックスを使用することです。
その他の配列機能
実際、この章では配列について簡単に紹介します。さらに、配列は多次元にすることもでき、さまざまな方法で指定できます。配列の再利用と操作が容易になります。配列については、本書の第 11 章でさらに詳しく説明します。
オブジェクト
PHP のもう 1 つの基本的なタイプはオブジェクトです。これは、PHP がオブジェクト指向プログラミング言語に入るチャネルです。配列と同様、オブジェクトも複合型であり、他のさまざまな型を 1 つのオブジェクトに統合できます。オブジェクトには、関数をデータとして統合する機能などの追加のより正確なプロパティがあり、他のオブジェクト指向の概念も使用できます。詳細については、そのセクションを参照することをお勧めします。
リソース
リソースは、PHP 自体の外部のメモリを参照するために使用される特別な値です。PHP を記述するためにリソースについて詳しく知る必要はありません。すべての可能なリソースについて簡単に紹介しますが、読み飛ばしてください。 「リソースをどうするか」セクションに続きます。
リソースとは正確には何ですか?
リソースは、PHP が外部プログラム (データベースや画像処理プログラムなど) と通信するために使用するタイプです。一般に、PHP プログラマーは、これらのプログラムによってメモリ内に設定されたリソースを使用する必要があります。 PHP メモリの解放について心配する必要があります。PHP プログラムで文字列を生成する場合 (メモリ領域を占有する必要があります)、プログラムが終了するまでその詳細をすべて忘れることができます。PHP (またはそれを実行しているサーバー) が適切なメモリを解放します。すぐではない場合でも、プログラムの実行が終了した後にメモリを確保します。
外部プログラム (データベースなど) は、プログラムの実行後に、データベースに適切なメモリを確保することを考えるかもしれません。これを PHP が処理する方法は、外部プログラムからメモリにアクセスするすべての特殊な関数です。このようにリソースを返し、プログラムがリソースにアクセスできるかどうかを PHP がチェックできるようにします。誰もリソースを使用できない場合、PHP はリソースを参照することで、この種の問題を正しく解決できます。参照カウントが 0 の場合、リソースは解放できます。
リソースをどう扱うか?
通常、PHP プログラマは、いくつかの特別な関数を呼び出してこれらのリソース タイプを返し、リソース タイプを必要とする他の関数に渡す必要があります。たとえば (本書のパート 2 で説明します)、mysql_connect() 関数 (MySQL データ参照への接続を返します) を呼び出し、結果を変数に保存し、それを mysql_query() に渡すことができます。関数 (この接続を使用してデータベースにアクセスします)。
基本的に、この接続リソースを使用するために必要なのは、それを変数に保存し、必要な関数に渡すことだけです。プログラムの終了後に、PHP を通じてこのリソースをクリアできます。いずれにせよ、プログラムの実行中にプログラムが終了する前にこのリソースが大量のメモリを使い果たしたと感じ、早期に解放したい場合は、次のようなことを行う必要があります:
$my_resource=mysql_connect();//ストレージ変数
//接続リソースを使用するプログラム フラグメント
$my_resource=NULL;//変数は元のリソースを参照しなくなりました
$my_resource を指定すると、PHP は他のプログラムが MySQL を使用していないかどうかをチェックしますリリースを開始する前にリソースを削除してください。
型テスト
変数は再代入によって型を変更できるため、プログラムの実行時に特定の値の型を把握する必要がある場合があります。 PHP は、一般的な型テスト関数 (gettype()) を提供するだけでなく、5 つのデータ型ごとにブール関数も提供します。これらの関数の一部には、置換可能な名前も付いています。 表 6-1 は、これらの関数をまとめたものです。
表 6-1 関数の型テスト
仕様とキャスト
ただし、前に述べたように、PHP は多くの場合、ある型を別の型に自動的に変換します。ただし、PHP プログラマはこのような変換を強制的に実行することもできます。いずれの場合も、プログラム設計者はどのような結果が予想されるかを知っておく必要があります。
型変換動作
PHP である型から別の型に変換するときの一般的なルールをいくつか示します:
整数から多精度浮動小数点数へ: 完全に一致する多精度浮動小数点数を作成します (たとえば、int4 は double4 になります。 0回)。
倍精度浮動小数点数を整数に変換: 小数部分は四捨五入されます。
数値をブール値に変換: 0 に等しい場合は FALSE、それ以外の場合は TRUE。
数値から文字列へ: 文字列は、数値として表示されたときの見た目に従って作成されます。整数出力は数値列として表示されます。倍精度浮動小数点数は小数点以下の文字数が多い場合はカサケン記号表記に変換されて出力されます。 。
数値へのブール値: TRUE の場合は 1 を取得し、FALSE の場合は 0 を取得します。
ブール文字列: TRUE の場合は 1 を取得し、FALSE の場合は空の文字列を取得します。
NULL から数値へ: 0
NULL からブール値へ: FALSE
文字列から数値へ: これは、文字列から数値を「読み取り」、それを指定された型に変換することと同等です。数値を読み取れない場合、値は 0 になります。成功するためにすべての文字列を読み取る必要はありません。
文字列からブール値へ: 空の文字列または 0 の場合は FALSE、それ以外の場合は TRUE。
単純型の配列 (数値または文字列): インデックス 0 に値が割り当てられた新しい配列を作成することと同じです。
配列から数値へ: 未定義 (以下の説明を参照)
配列からブール値へ: 配列に要素がない場合は FALSE、それ以外の場合は TRUE。
配列から文字列へ: これは「Arryay」です。
番号に対するオブジェクト: 未定義 (以下の説明を参照)。
オブジェクトをブール値に変換: オブジェクトに値を持つメンバー変数が含まれている場合は TRUE、それ以外の場合は FALSE。
オブジェクトを文字列に変換: "オブジェクト"。
リソースをブール値に変換: FALSE。
リソースから番号: 未定義 (以下の説明を参照)
リソースから番号: 「リソース ID #1」のような場合もあります (ただし、この規則に大きく依存することはできません)。
上記のリストでは、数値型に変換するときに一部の型が未定義であることがわかりました。上記の説明で、未定義とは、PHP 設計者が将来の PHP ルールで最終的な変換を決定していないことを意味します。プログラムの作成方法によっては、使用している特定の PHP バージョンでは数値型に変換できる場合もありますが、次のバージョンでは機能しない可能性があります。
上記は PHP 学習ガイド - 第 6 章 (続き) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。