パーフェクトPHPで学習中(chapter2)

参考

パーフェクトPHP

chapter2

関数とメソッド

PHPでは関数とメソッドには必ず()をつける。 ()がないとプロパティ扱いになる。

PHPではそれぞれの文の終わりに;をつける。 一文しかないPHPブロック内では;は不要。

PHP_EOL

PHP_EOLは改行を意味する定数。

変数

概要

PHPは変数を$と識別子で区別する。変数の頭には必ず$をつけなければならない。 識別子は大文字と小文字で区別される。 isset()で引数の名前の変数がセットされているかどうかを調べることができる。

可変変数

$$で宣言する。 評価する変数名を変数にすることができる。 内側の$から順に評価していくイメージ。 参照する変数を動的に変更するときや文字列から変数名を組み立てたいときに役立つ。

変数のスコープ

グローバルスコープ

PHPブロックの中はグローバルスコープになる。 他のPHPブロックやファイルの中でも使うことができる。 またPHPにはブロックスコープがない。 制御構文中のブロックを抜けた後でもブロック内の変数が残る。 要注意。

ローカルスコープ

関数やクラスのメソッド内がローカルスコープになる。 ローカルスコープとグローバルスコープの変数は互いに行き来することができない。

定義済み変数

phpには実行時に自動的に初期化されている変数がある。 全ての変数が書き換え可能であるため誤って上書きしないように注意する必要がある。

スーパーグローバル変数

前述の定義済み変数の他に全てのスコープから参照可能な変数がある。これも実行時に自動的に定義されている。実行環境情報やHTTPのparams、セッション変数やクッキーなどが入っている。

定数

一度定義したらスクリプト終了まで変更できない。定数には$はいらない。

定数定義

<?php
define('NAME', 'yshr');
const NAME = 'yshr';

上記の二つはどちらも定数定義の方法だが、constで定義したものだけ名前空間の影響を受ける。