PHPのログ出力と標準出力を完全解説!echo・fwrite・error_logを初心者向けにやさしく理解
生徒
「PHPで文字を表示したり、エラーの記録を残したりできるって聞いたんですが、どう違うんですか?」
先生
「PHPでは、画面に表示する方法と、ログとして記録する方法が分かれています。目的によって使い分けるのが大切です。」
生徒
「パソコンをほとんど触ったことがなくても理解できますか?」
先生
「大丈夫です。文字を表示する仕組みから、ノートにメモを残す感覚で説明します。」
1. PHPのコマンドラインスクリプトとは?
PHPには、ブラウザで動かす使い方だけでなく、コマンドラインと呼ばれる黒い画面で動かす方法があります。これをPHPのコマンドラインスクリプトといいます。コマンドラインとは、キーボードで文字を入力してパソコンに命令を出す画面のことです。Windowsでは「コマンドプロンプト」、Macでは「ターミナル」と呼ばれます。
この環境では、画面に文字を表示したり、ファイルに記録を書き込んだりする処理がよく使われます。そのときに重要になるのが、標準出力とログ出力です。
2. 標準出力とは?画面に文字を出す仕組み
標準出力とは、プログラムが実行結果を画面に表示するための仕組みです。とても簡単に言うと、「パソコンの画面に文字を見せる出口」です。電光掲示板に文字を表示するようなイメージをすると分かりやすいです。
PHPでは、echoやfwriteを使って標準出力に文字を出します。初心者の方は、まず「echoは画面に文字を出す命令」と覚えて大丈夫です。
3. echoで文字を表示してみよう
echoは、PHPで一番よく使われる表示方法です。難しい設定は不要で、書いた文字がそのまま画面に表示されます。メモ帳に文字を書いて見せる感覚に近いです。
<?php
echo "こんにちは、PHPの世界へようこそ";
このスクリプトを実行すると、次のように表示されます。
こんにちは、PHPの世界へようこそ
echoは、確認用のメッセージや処理の結果を知りたいときにとても便利です。PHP初心者が最初に覚える命令として定番です。
4. fwriteで標準出力に書き込む仕組み
fwriteは、もともとファイルに文字を書くための命令ですが、標準出力に対しても使えます。ここで登場するSTDOUTは「標準出力」を意味する特別な名前です。
少し難しく感じるかもしれませんが、「echoの別の書き方」くらいの理解で問題ありません。
<?php
fwrite(STDOUT, "これはfwriteで表示しています");
これはfwriteで表示しています
echoとfwriteの違いは、細かい制御ができるかどうかです。初心者のうちはechoを中心に使い、仕組みを知る目的でfwriteを覚えておくと安心です。
5. ログ出力とは?記録を残す考え方
ログ出力とは、プログラムの動きやエラー内容を記録として残すことです。これは、ノートに「今日こんなことがあった」と書き留める行為に似ています。
画面に表示する標準出力と違い、ログはあとから確認するためのものです。プログラムがうまく動かないときの手がかりになります。
6. error_logでログを出力する
PHPでログを出力する代表的な方法がerror_logです。名前の通り、エラーや注意事項を記録するためによく使われます。
<?php
error_log("ここで処理が実行されました");
この命令は、画面には表示されません。その代わり、PHPの設定で決められたログファイルに文字が書き込まれます。これにより、利用者には見せずに内部の情報を残せます。
7. 標準出力とログ出力の使い分け
ここまでで、標準出力とログ出力の違いが見えてきました。標準出力は「今見せたい情報」、ログ出力は「あとで確認したい記録」です。
たとえば、作業の進み具合を確認したいときはecho、問題が起きた原因を調べたいときはerror_logを使います。目的に合わせて選ぶことが、PHPプログラミングではとても重要です。
8. 初心者がつまずきやすいポイント
初心者の方がよく混乱するのは、「表示されない=失敗」と思ってしまう点です。error_logは表示されなくて正解です。これは、裏側で記録を残しているだけだからです。
また、コマンドラインでPHPを実行するときは、echoやfwriteは画面に出ますが、ログは別の場所に保存されます。この違いを理解すると、PHPの仕組みが一気に分かりやすくなります。