📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 360行目: | 360行目: | ||
define("COPYRIGHT", "Copyright (C) 2008 XXX. All Rights Reserved."); | define("COPYRIGHT", "Copyright (C) 2008 XXX. All Rights Reserved."); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | |||
== 変数展開 == | |||
文字列をダブルクオーテーションで囲む場合やヒアドキュメントの場合、文字列に変数が存在する時、変数は格納されている値に置換される。<br> | |||
このような処理を変数展開と呼ぶ。<br> | |||
<br> | |||
以下の例では、文字列に変数nameが記述されている。<br> | |||
この文字列を出力する時、"こんにちは。高橋 さん"と変数に格納されている値に置き換えて出力される。<br> | |||
<syntaxhighlight lang="php"> | |||
$name = '高橋'; | |||
echo "こんにちは。$name さん"; | |||
</syntaxhighlight> | |||
<br> | |||
変数展開において、変数が記述された位置の後ろにアルファベットが続く場合は、どこまでが変数名なのか区別できない場合がある。<br> | |||
以下の例では、変数colornamecolorを変数展開されてしまう。<br> | |||
<syntaxhighlight lang="php"> | |||
$colorname = 'red'; | |||
echo "frame is $colornamecolor"; | |||
</syntaxhighlight> | |||
<br> | |||
このように、どこまでが変数名なのか区別できない場合や配列変数等を使用する場合は、変数名を<code>{}</code>で囲んで記述する。<br> | |||
<syntaxhighlight lang="php"> | |||
$colorname = 'red'; | |||
echo "frame is ${colorname}color"; | |||
</syntaxhighlight> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>シングルクオーテーションで囲んだ文字列で変数を記述しても、変数展開は行われない。</u><br> | |||
<br><br> | <br><br> | ||
| 495行目: | 523行目: | ||
// $itemsは ['A', 'D'] | // $itemsは ['A', 'D'] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | |||
== Nullable型 == | |||
PHPの型宣言において、?<型名>の記法は、その変数がデータ型またはnullを許容することを示す。<br> | |||
これは、Nullable型と呼ばれ、PHP 7.1以降で導入された機能である。<br> | |||
<br> | |||
例えば、?string型は、string|nullと同じ意味になる。<br> | |||
また、デフォルト値として<code>null</code>を指定することができる。<br> | |||
<br> | |||
ただし、nullでない場合は、必ず文字列型である必要がある。<br> | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
function example(?string $section = null) | |||
{ | |||
if ($section === null) { | |||
// $sectionがnullの場合の処理 | |||
return "Section is null"; | |||
} | |||
// $sectionが文字列の場合の処理 | |||
return "Section is: " . $section; | |||
} | |||
// 両方とも有効な呼び出し | |||
echo example(null); // "Section is null" | |||
echo example("Chapter 1"); // "Section is: Chapter 1" | |||
</syntaxhighlight> | |||
<br><br> | |||
== スーパーグローバル変数 == | |||
スーパーグローバル変数は、スクリプトのどこからでもアクセスできる。<br> | |||
ただし、セキュリティ上の理由から、入力値は必ず適切なバリデーションやサニタイズを行ってから使用する必要がある。<br> | |||
<br> | |||
==== $_GET ==== | |||
URLパラメータからデータを取得する。<br> | |||
例: example.php?name=taroの場合、$_GET['name']は"taro"となる。<br> | |||
<br> | |||
==== $_POST ==== | |||
POSTメソッドで送信されたフォームデータを取得する。<br> | |||
ファイルアップロードやパスワード等、セキュアなデータ送信に使用する。<br> | |||
<br> | |||
==== $_SESSION ==== | |||
セッション変数を格納する。<br> | |||
ユーザのログイン状態管理等に使用する。<br> | |||
<br> | |||
==== $_COOKIE ==== | |||
クライアント側に保存されたCookie情報を取得する。<br> | |||
ユーザ設定の保存等に使用する。<br> | |||
<br> | |||
==== $_SERVER ==== | |||
サーバ情報やリクエストの詳細を取得する。<br> | |||
<br> | |||
主な要素<br> | |||
* $_SERVER['REQUEST_METHOD'] | |||
*: HTTPメソッド | |||
* $_SERVER['HTTP_USER_AGENT'] | |||
*: ブラウザ情報 | |||
* $_SERVER['REMOTE_ADDR'] | |||
*: クライアントのIPアドレス | |||
<br> | |||
==== $_FILES ==== | |||
アップロードされたファイルの情報を取得する。<br> | |||
ファイル名、サイズ、一時保存先等の情報を含む。<br> | |||
<br> | |||
==== $_REQUEST ==== | |||
$_GET、$_POST、$_COOKIEの内容を含む。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>セキュリティ上、直接的な使用は推奨されない。</u><br> | |||
<br> | |||
==== $_ENV ==== | |||
環境変数の値を取得する。<br> | |||
サーバ設定や環境設定値へのアクセスに使用する。<br> | |||
<br> | |||
==== $GLOBALS ==== | |||
グローバルスコープで定義された全ての変数を参照する。<br> | |||
他のスーパーグローバル変数も含む。<br> | |||
<br><br> | <br><br> | ||