PHPは、どんな言語?
PHPは、Java言語やC言語に近い言語仕様を持っているので、ステップアップが比較的簡単に出来る言語です。
また根強く残っているPerl言語にもよく似ているので適応するのは簡単でしょう。
この3つの言語は、常にトップ10に入る人気の言語でこれからも無くなる事は無いでしょう。
また、難易度は低くマニュアルも充実しています。さらにHTMLと相性が良くHTML、JavaScriptを少し勉強した人が次に選ぶ言語として最適です。
さらに、WordPressはPHPで書かれているのでブログを効率良く書ける様に自分でアレンジする事も出来ます。
WordPress関連の市場規模もそれなりに有るでしょうし、副業(広告収入)としてブログを開設するのも楽しくなると思います。
それでは、一緒に勉強していきましょう。
PHP簡易チュートリアル
PHP基本
前回のCGI環境構築では、
<?php phpinfo();?>
だけ、確認しました。PHPの書き方は
<?php ?>
が基本でちょっとHTMLぽいですね。
HTML内に直接書き込むことを想定して作られているので、開始タグ+終了タグ形式になっています。(CLIプログラミングとして動かす場合はタグは不要です)
ファイルがPHP文のみの場合は最後の終了タグは省略して書く事が推奨されています。
<?php phpinfo();
次に中身の
phpinfo();
は、PHPに予め用意されている命令(関数)です。「PHPの設定内容を表示して」と言う命令です。最後の命令文の場合セミコロンは、省略する事は出来ます(終了タグに含まれると解釈)
<?php phpinfo() ?>
が「一つの命令文;」を癖にしましょう。
C言語やJava言語から引き継いだ悪しき習慣の一つですが逆にCやJavaへのステップアップが楽になります。Perlも同様です。
前回の環境でハローワールド
前回の環境を作っている人は、DockerDesktopを立ち上げてコンテナのスタートボタンでサーバーを起動して下さい。
前回の環境でVScodeのhtmlフォルダ内に「hello.php」で保存して「localhost/hello.php」でアクセスして見て下さい。
cgidocker/html/hello.php
<!DOCTYPE html> <html> <head> <title>ハローPHPワールド</title> <meta http-equiv="content-type" charset="UTF-8"> </head> <body> <h1> <?php echo 'ハロー PHPワールド'; ?> </h1> </boby> </html>
PHP文は
<?php echo 'ハロー PHPワールド'; ?>
文字列の表示は
echo 'moji1','moji2'; または print 'moji1';
echoは複数の引数を受け取れますが、printは1つだけしか引数を受け取れません。
HTMLタグを書き込むことも出来ます。
<?php echo '<br><B>太文字になります。</B>'; ?>
文字列を囲っている「’」シングルクォーテーションは「”」ダブルクォーテーションにすることが出来違いは、エスケープ文字を変換するかしないかです。
シングルクォーテーションは変換されずダブルクォーテーションは変換されます。
エスケープ文字は、改行を意味する「\n」等が有ります。「\」バックスラッシュはWindows環境では「¥」マークです。
<?php print 'moji1\n'; ?> は、改行(\n)されず「moji1\n」と出力 <?php print "moji1\n"; ?> は、改行(\n)されます。
文字列結合
文字列の結合は、「.」ドット(ピリオッド)を使います。Perl言語も同様です。
<?php print "おはよう" . "ございます。"; ?>
数値と文字列は、数値が文字列に変換されて結合されます。
<?php print "Xは" . 10 . "です。";?>
変数
変数は、数学で使ったXやYなどと似ていて箱をイメージする事が多いです。
数学の場合は数値だけでしたが、文字列等も入れることが出来ます。
最初に$マークを付けて変数で有ることを表します。
<?php $x = '10'; print "Xは" . $x . "です。";?>
①数字から初めてはいけません。
$123xyzなどは使えません。
②大文字、小文字は区別されます。
$Yと$yは別の変数です。
③記号はアンダースコアが使えます。
$_x $x_012 $a_z などは使えます。
④定義済みの変数と同じ物は使えません。
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_REQUEST
$_SESSION
$_ENV
$_COOKIE
$php_errormsg
$http_response_header
$argc
$argv