home > メモ
項目 | ポイント | フリーワードメモ |
定数と変数 | @定数には変更しない値を、変数には変更する値を格納する | 値を保持する入れ物として定数と変数がある。 |
A定数はdefine()関数で、変数は名前の先頭に「$」を付けて定義する | 定数は変更することがなく決まって使う値、変数は計算結果など変更する値の格納に適する。 | |
B変数はあえてデータ型を宣言しなくても使うことができる | 変数を定義するには任意の文字列の先頭に「$」を付けるだけ | |
変数に値を代入するには代入演算子「=」を使う。未時列は「"〜"」で囲む。 | ||
変数の型 | @PHPで使える変数の方は8つ | スカラー型(論理値、整数、浮動小数点数、文字列)、複合型(配列、オブジェクト)、特殊な型(リソース、ヌル) |
A型を定義しなくても変数を使える | ||
Bスクリプトの実行時に変数の型が決められる | ||
型キャスト | @変数の型を指定して変換することができる | ●型キャストで指定できる型 |
A不動小数点数を整数型へ変換すると小数点以下の値が切り捨てられる | 整数:int,integer | |
B数値から文字列へ変換することができる | 論理値:bool,boolean | |
不動小数点数:float,double,real | ||
文字列:string | ||
配列:array | ||
オブジェクト:object | ||
配列 | @array()関数を使って配列を定義 | 変数名の末尾に「[](角かっこ)」を付けるだけで配列として宣言できる。 |
A配列にインデックスを指定しないと0からの連番が割り振られる | ||
B配列のインデックスには任意の数字を指定することができる | ||
C配列のインデックスには任意の文字列を指定することができる | ||
Dインデックスが文字列の配列を連想配列と呼ぶ | ||
Eインデックスが連続した数値でなくてもlist()関数とeach()関数で繰り返し処理を記述できる | ||
計算 | @PHPでは算術演算子と代入演算子を使って計算式を表現する | |
APHPでは他の言語とほぼ同じ算術演算子を使える | ||
B計算式の立て方は算数や数学と同じ | ||
値の比較 | @PHPでは比較演算子を使って比較条件を表現する | |
APHPでは他の言語とほぼ同じ比較演算子を使える | ||
B条件式からは論理値の真(true)と偽(false)が返される | ||
論理演算 | @論理演算子を使って条件式を結合できる | 条件式を結合するために論理演算子が使われる。 |
A論理演算しには優先順位がある | 論理積では全てに条件が満たされる場合に真(true)、論理和では1以上の条件が満たされる場合に真(true)が返される | |
B優先順位の高い演算子から評価される | ※論理積:両方、論理和:片方または両方 | |
文字列計算 | @文字列結合演算子または識別子以下偽の文字を使って文字列を結合できる | |
A「{}(中かっこ)」で文字列変数の範囲を明示して結合できる | ||
B文字列結合演算子は長い文字列の結合に使われる | ||
三項演算子 | @PHPで使える三項演算子はひとつ | 三項演算子は条件式と条件が成立する場合、成立しない場合に返す値をひとつの式で表す |
A演算子には「?」と「:」を使う | (条件?trueの場合の返り値:falseの場合の返り値) | |
Bif..else文で同じ意味の式を記述できる | Excelなどで条件式を記述する際に使われている | |
数学関数 | @PHPでは計算を行う際に便利な数学関数が提供されている | |
A面倒な計算も数学関数で対処できることが多い | ||
B数学関数を使って出力形式をフォーマットできる | ||
条件分岐 | @if文を使って条件を判別して処理を実行することができる | 特定の条件を判定しながら処理を実行するときに使う条件文 |
[if] | Aいくつもの条件式を結合して複雑な条件式を組むことができる | 複数行のコードを実行する場合、if文の有効範囲を明確にするために「{}」で範囲を囲う。 |
B論理演算子を使って条件式を結合する | ||
条件分岐 | @if〜else文とif〜elseif文を使いより複雑な条件判定ができる | |
[if〜else] | A条件式が不成立の場合の処理を記述できる | |
Belseif文はいくつでも重ねることができる | ||
条件分岐 | @機能は他のif文と同じ | HTMLで作成したページの中にPHPの条件式を埋め込む場合にとても効率的な記述方法 |
[if:〜endif] | A条件式の区切りに「:(コロン)」を使う | 「{}(中かっこ)」でif文の有効範囲を指定する代わりに「:(コロン)」を条件式の区切りに使う |
Bif:〜endif文の間にHTMLをそのまま記述できる | ||
条件分岐 | @switch文は同じ変数を繰り返し評価する条件式を効率的に記述できる | if〜elseif〜else文で表せる条件式を、より簡潔で効率的に記述できる |
[switch] | Aif〜elseif〜else文を使っても同じ処理を記述できる | 比較対象の変数の値がcase節の値と一致するまで順次比較していく。条件式が成立するとbreakが出てくるまで一連のコードを実行する。 |
B実行途中で処理を中断する場合は「break」を指定する | ||
ループ | @whileはコードを実行する前に条件式を評価する | 「{}(中かっこ)」で実行するコードの範囲を囲う |
[while] | A最初に条件式を満たさなければコードは1回も実行されない | 条件を満たしている間は、かっこの中のコードを繰り返し実行する |
B途中で処理を中断する場合は「break」を使う | ||
ループ | @do〜whileはコードを実行した後に条件式を評価する | 「{}(中かっこ)」で実行するコードの範囲を囲う |
[do〜while] | A最初に条件式を満たさなくてもコードは必ず1回は実行される | 条件を満たしている間は、かっこの中のコードを繰り返し実行する |
B途中で処理を中断する場合は「break」を使う | 最初から条件を満たしていなくても、必ず1回はコードが実行される | |
ループ | @forはコードを実行する前に条件式を評価する | 処理の動作はwhileと同じだが、変数でループ回数を制御する場合などではforを使ったほうがスマートな条件式を記述できる。 |
[for] | Aforで記述できるループ処理はwhileで置き換えられる | |
B途中で処理を中断する場合は「break」を使う | ||
文字列操作 | @strlen()関数を使って文字列の長さを調べる | |
Aexplode()関数を使って文字列を分割する | ||
Bsubstr()関数を使って文字列の一部を取り出す | ||
Cprintf()関数およびsprintf()関数を使って文字列の書式を変換する | ||
Dstr_replace()関数を使って文字列を置換する | ||
パターンマッチング | @特殊記号などを組み合わせて文字列を表現する | |
A指定した文字列とパターンが一致するかどうか調べられる | ||
B文字列を定めず文字範囲でパターンが一致するかどうか調べられる | ||
ファイルを開く | @ファイル関数を使ってファイルを操作できる | |
Aファイルに対する操作によって開くモードを指定する | ||
B開いたファイルへの操作を終えたら閉じる | ||
ファイルの読み書き | @fpassthru()関数を使って読み込んだファイルを出力できる | |
Aファイルに対して任意の文字列を書き込める | ||
B文字数はバイトで数える | ||
ファイルのアップロード | @フォームを使ってファイルをアップする | |
A返信ファイルは一時ファイルとしてサーバに保持される | ||
Bスクリプトの実行終了時に一時ファイルは自動的に削除される | ||
ダウンロード | @ファイル操作からサーバ上でファイルを生成する | |
A「,(カンマ)」区切りのCSVファイルを生成する | ||
B生成したCSVファイルにリンクを張ることでダウンロードできるようにする | ||
関数 | @関数はfunctionを使って定義する | 関数の範囲を明示するために「{}(中かっこ)」で実行するコードを囲う。 |
A関数名には任意の文字列を指定できる | 複数の引数を渡すときは、引数を「,(カンマ)」で区切って並べる。 | |
B関数を実行するときには関数名に「()(かっこ)」を付けて呼び出す | ||
引数 | @1つの関数に複数の引数を渡すことができる | 引数には数値、変数、配列を指定できる |
A引数で渡された値を変更しても元の値は変わらない | ||
B引数を参照渡しで渡すと元の値も変更できる | 引数名に「&(アンパサンド)」を付けると、引数を参照渡しで渡せる。 | |
返り値 | @関数の実行結果はreturnを使って返す | |
Areturnは複数の値を返すことができない | ||
B関数の返り値を配列にすることで、複数の値を返すことができる | ||
インクルード | @require文とinclude文を使って部品化された関数などを呼び出すことができる | |
Arequire文はスクリプトの実行に先立ち置き換えられる | ループ処理の中にrequire文を置いて、毎回異なるファイルを読み込むことはできない。 | |
Binclude文はスクリプトの実行の度に読み込まれる | require文と違いループ処理の中にinclude文を置いて毎回異なるファイルを読み込むことができる。 | |
クッキー | @クッキーはクライアントマシンにデータを保存できる手段 | |
Aクッキーを使えばサイト内でのユーザーの同行を追跡することができる | ||
BHTTPプロトコルに欠けている状態保持をサポート | ||
Csetcookie()関数を使ってクッキーをセットする | ||
D有効期限を指定しなければブラウザを閉じるとクッキーも消える | ||
E有効期限をセットするにはtime()関数やmktime()関数を使う | ||
F受け取ったクッキーはグローバルな配列に格納される | ||
Gクッキーも普通の変数と同じ扱いで使うことができる | ||
H不要になったクッキーは簡単に削除できる | ||
Iクライアントがクッキーを保持できる個数に制限がある | ||
J1つのクッキーで複数の値を渡すことができる | ||
K配列で複数の値を受け取ることができる | ||
アクセス認証 | @ユーザー認証はWebサイトやページのアクセスを制限できる手段 | PHPではアクセス認証を設定したページを開いたときに「ユーザー名とパスワードのダイアログ」を表示する「チャレンジレスポンス方式」を採用 |
APHPの認証機能を使えば簡単にアクセス制限ができる | Web歳との入り口でも、それぞれ個別のページでも、任意の場所に設定することができる。 | |
Bデータベースと連動することでより高機能のアクセス制御が可能 | ||
Cユーザー名とパスワードの入力を求めるダイアログを表示する | ||
Dユーザー名とパスワードの入力値の有無で認証をする | ||
Eキャンセルボタンをクリックした場合にエラーメッセージを表示する | ||
パスワード認証 | @ユーザー名とパスワードの入力を求めるダイアログを表示する | |
Aユーザー名とパスワードが設定値と一致するか判別して認証をする | ||
B未入力およびキャンセルの場合にはエラーメッセージを表示する | ||
セッション管理 | @PHP4からセッション管理がサポートされた | |
Aクッキーと同様にセッションを管理することができる | ||
Bセッション関数を使えば容易にセッション管理が行える | ||
Cセッション関数を使ってセッションをコントロールする | ||
Dセッション変数には数値や変数、配列、オブジェクトを指定できる | ||
EセッションIDをキーにしてデータベースと連携するとされに利用価値が高まる | ||
エラー | @PHPではプログラミングエラーの検出や診断ができる | |
Aプログラミングエラーには構文エラー、意味的エラー、論理エラーの3つがある | ||
Bエラーメッセージにはエラー行番号が表示されるため原因の特定が容易 | ||
CPHPには4つのエラーレベルがある | パースエラー、致命的エラー、警告、注意 | |
Dエラーを含んでいるスクリプトも実行される場合がある | ||
Ephp.iniで表示するエラーレベルを設定できる | ||
フォーム | @HTMLで作成したページのどこへでもPHPスクリプトを記述できる | PHPスクリプトの部分をタグで囲う |
Aフォームを構成するボタンなどと組み合わせることができる | ||
BPHPスクリプトの拡張子を「php」に変更する | ||
PHPからのデータベース操作 | @mysql_connect()関数を使ってMySQLへ接続する | |
A接続に成功すると接続IDが返される | ||
Bmysql_close()関数を使ってMySQLから切断する | ||
Cmysql_select_db()関数を使ってデータベースを選択する | ||
Dmysql_select_db()関数の引数として接続IDが使われる | ||
Emysql_query()、mysql_num_rows()、mysql_result()関数を使ってデータを取得する | ||
Fmysql_create_db()関数を使ってデータベースを作成できる | ||
Gmysql_drop_db()関数を使ってデータベースを削除できる | ||
Hmysql_fetch_row()関数とmysql_fetch_array()関数を使って結果を配列で受け取る | ||
Imysql_free_result()関数を使ってメモリを開放できる |