こんにちは、いっとくです。
今まで人生で後悔したことが2回だけあります。
1つ目は秘密。
そして2つ目はPHPを勉強し始めた時にPHPマニュアルの読み方を知らなかったことです!!
PHPマニュアルとは?
その名の通りPHPの公式マニュアルである。
きっとPHPで何かを調べたことがある人ならば、一度は見たことがあるでしょう。
この公式マニュアルの良いところは、情報が限りなく正しいところ!
この公式マニュアルの悪いところは、果てしなく初心者にとって読みづらいところ!
公式マニュアルなので、書いてあることの信頼性の高さはナンバーワンです。当たり前ですが。
そんなに素晴らしい情報源なのにも関わらず、難解なワードチョイスにより、初学者なら誰しもがすぐにプログラミングスクール各社が運営しているオウンドメディアに逃げていってしまうのです…
しかし、このマニュアルを読めるのと読めないのでは、学習の進捗にそれなりの差が生まれると思うので、ぜひ知っておいて欲しい!
そんなわけで今回はPHPマニュアルの読み方、特に関数の概要を掴む方法について解説しようと思います!
PHPには関数が現在訳9000個弱あると言われており、それを覚えるのは不可能!しかし読み方がわかったら実質覚えているのと変わらないよね!?っていうことです。
PHPマニュアルの大事なエッセンスはdate関数で学べる
では早速ですが読み方を見ていきましょう。
最初理解できないけど大事だと思う部分が以下の赤枠で囲っているところです!
これが読めるようになると、その関数のざっくりした使い方が大体わかるようになります!
date ( string $format [, int $timestamp = time() ] ) : string
実はこの難解な式ははその関数の引数と返り値の情報を表しています。
まず左にdateとありますが、これはまず今回の関数名ですね。これはそのまんまなので特に解説しません。
そして()の中は引数の情報を表しています。
まず()の中の string $format
ですが、この2つで第一引数を表しています。
stringの部分で文字列型だよってことを表しており、今回の場合はstring型(文字列型)のformatを渡すということを示していますね。
$formatの部分は変数名みたいになっていますが、ざっくりとこの引数はフォーマットを渡すのねくらいに思っておけば大丈夫です。
引数はこのように、データ型 引数名という形で表現されているのです。
[, int $timestamp = time() ]
は第二引数を表していますね。
ただ、上記の”データ型 引数名”よりもちょっと情報量が多いですね。
まずは解説済みの部分を読み解くと、int型(整数型)でタイムスタンプを渡すということがわかります。
※タイムスタンプというのは基準日からの経過秒数のことです。
では見慣れない表現が何を指しているかを知っておきましょう。
1つ目は[]の部分。
2つ目は = time()の部分。
1つ目の[]について。
これはオプションという意味です!
つまりこの第二引数は渡しても渡さなくてもどっちでもいいってことを表しています。
2つ目の = time()はその引数の初期値を表しています!
厳密には = が初期値あるよっていう印で、time()はその初期値の内容です。
これらを全て組み合わせると、「第二引数は、オプションだから渡しても渡さなくてもいいけど、渡すなら整数でタイムスタンプを渡してね。なかったら初期値のtime関数の実行結果が入るから!」という意味になります。
time関数は現在時刻のタイムスタンプを返す関数なので、何も渡さなければ現在時刻のタイムスタンプが渡されます。
そして最後に: string
これはその関数の返り値のデータ型を指しています。
つまりこの
date ( string $format [, int $timestamp = time() ] ) : string
という1文だけで、date関数は第一引数に文字列でフォーマットを渡して、第二引数はタイムスタンプを整数で渡してもいいし、なかった場合は現在時刻のタイムスタンプになります。その結果文字列が返ってきます。というところまでわかります。
この段階だとフォーマットというのがちょっとざっくりしていますが、下の方にスクロールするともう少し詳しい説明があり、事例もあるので、そこで日付をどんなフォーマットで表示すれば良いのかということがわかります。
ここまで来ると、第二引数で渡したタイムスタンプの時間が第一引数で渡したフォーマットの文字列が返ってくるんだな〜ってことまでなんとなく予想がつくようになるというわけです。
これが読めるようになると関数への理解の深まりがだいぶ変わってくると思います。
初心者の段階で理解したほうが良いのはこれくらいでとりあえずは大丈夫かと思います!
ただ調べているうちにいくつか謎の表現に出会うこともあると思うのでいくつか読み方事例を乗せておきます!
例えばよく使うであろう echo (厳密には関数じゃないけど)
echo ( string $arg , string ...$args ) : void
ここで見慣れないのは、 ...
と void
の2つですね。
まず ...
ですが、これは引数の個数が柔軟に変えれるよっていう意味です!
要するに、echo(‘text1’)でも良いし、echo(‘text1’, ‘text2’)でも良いし、echo(‘text1’, ‘text2’, ‘text3’)でも動くよって意味です。
ちなみにこういう柔軟に個数を変えられる出来る引数のことを可変長引数と呼んだりします。
そして、voidという見慣れぬ型。
これは返り値がないよっていうことを表しています。
お次はstrposを見てみます!
strpos ( string $haystack , string $needle [, int $offset = 0 ] ) : int|false
ここでは、返り値のint|falseが少し見慣れないですね。
これはintかfalseという意味です。|がorの意味をしています。
ちなみにここで引数名に使われている$haystack(干し草)と$needle(針)の命名ですが、これは「干し草の中から針を探す」ということわざから来ています。
$haystackがどこから探すかを指しており、$needleが探す対象のものを指しています。これは色んな関数の説明で出てくる命名なので覚えておくと便利かもしれません。
ラストはarray_pop!
array_pop ( array &$array ) : mixed
ここでは&とmixedが見慣れないですねぇ。
まず&ですが、これは参照渡しという渡し方を表しています。
参照渡しの細かい解説は今回はしませんが、この渡し方をすると、引数で渡した$arrayという変数の中身が変わります。
ちなみに、&で指定しない場合は値渡しという渡し方になります。
そして、mixed
これは型が複数あるよ!っていう意味です。引数によって返り値の型が変わります。
ちょっと長くなりましたが、こんな感じでPHPマニュアルの読み方がわかるようになると、その1文だけで関数の概要が掴めるようになるので、最初は文章が難解で読みづらいとは思うのですが、ぜひ頑張って読み解く力をつけていってくださーい!
以上、PHPマニュアルの読み方でした!
コメント