このページについて
このページではphpの基礎やJavaScriptとの違い、macOSへのインストール方法などを解説しています。
php
phpはサーバーサイドで動くプログラミング言語で、簡単に言えば「サイトページを動的にする」みたいなことが可能となります。同じようにサイトで使われる言語としてJavaScriptもありますが、JavaScriptはクライアント側(ユーザーのブラウザ)が処理を実行します。
phpはサーバーサイドなので処理はサーバーで行われて、その結果のみがクライアントに送られます。そのためクライアントはphpのコード等を見ることはありません。なのでどんなコードを書いても知られることはありません。
phpをmacOSにインストールするには
macOS Monterey(12.0)まではデフォルトで入っていたので何も準備せずとも使えました。しかしMontereyからは削除されたため、別でインストールする必要があります。これはCodeRunnerなどを使う場合でも必要な手順となります。
ターミナルで
php -v
と入力してバージョンが返ってくる場合はすでにphpがインストールされているので問題ありません。ない場合はインストールしましょう。
- homebrewのインストール
- phpをインストール
の2つの手順を行います。まずはbrew.shへ行き、homebrewをインストールする準備をします。Install homebrewの下にあるコードを全てコピーして、ターミナルに貼り付けて実行します。
実行後は時間がかかりますが、途中でキー入力を求めてくる事があります。その際は自分のmacのパスワードを入力します。2回目の入力に関しては何でもOKです。
しばらく処理が行われていくとNext Stepsと出てくると思います。そうなったらechoとevalの2行を全てコピーし、貼り付けて実行します。これを実行しないとインストールが正常に終わりません。
こんな感じで、2行を全てコピーして実行します。homebrewのインストールが終わったら、次はターミナルで以下を実行します。
brew install php
これで最新版のphpがインストールされます。しばらく待ちます。
phpの基礎
インストールが終わるまで、phpの基礎について軽く紹介します。phpはサーバーサイドなのでサーバーで機能するプログラミング言語です。と言う事でサーバーを準備しなきゃいけないって思われるかもしれませんが、勉強だけならばサーバー自体は不要です。というのもサイトページを作って実際にphpを使いたいとか、そういう感じならそもそもサーバーが無いと無理ですよね。ただしphpの勉強程度であれば今回のhomebrewを使ったインストールや、CodeRunner、MAMPで十分です。
プログラミング言語には大まかに2種類あり、インタプリタとコンパイラがあります。コンパイルとは「ソースコードをコンピュータが解釈・実行できるように変換する事」なんですが、これは主にコンパイラ言語と言われていてC++などが該当します。逆にインタプリタは「ソースコードを直接解釈・もしくは中間表現にして解釈して実行」という事でコンパイルしません。
インタプリタはソースコードを書いている途中でもサンプルとして実行し、その都度コードを修正できる手軽さがあります。コンパイラ言語は一度コンパイル作業をしてチェックが行われるか、全てコンパイルし終えたあとで確認するまで結果がわからないと言う点があります。そのコンパイルを待つ時間が無いってのがインタプリタのいいところだったりします。
phpファイル
phpはどこに書くのかと言うと、htmlファイルに直接書いたりphpファイルに書いたりする事で使います。このphpという言語はサイトページに変化を与える目的で使われる事が多いため、phpファイルに書き・それをphpで呼び出し・サーバーで処理をしてからユーザー側(クライアント)に送っています。
phpの簡単な書き方
phpは他のHTMLやJavaScriptなどと同じく、開始と終わりが決まっています。通常のテキストファイルを開いて、先頭に以下を入力します。ファイルの拡張子を.phpにすればphpファイルとして扱われます。
<?php
そして中間のコードは今回は省略しますが、最後の最後には以下を使います。
?>
これがphpファイルとしての開始と終わりの書き方になります。まず<?phpでphpコードを書き始めるという宣言をして、?>でphpコードがここまでですよっていう事を書いていると思ってください。
中間に書くコードの書き方も基本的には統一されています。例えばよく使われる変数は
$変数名 = 内容;
となり、if文だと
if (条件式) {処理内容};
となります。phpは;(セミコロン)までで1つの処理内容として解釈するので、処理の終わりには;が必要です。必ず必要というわけではありませんが、;が無いだけでエラーとなるので基本的には入れておいたほうが安心できます。
htmlに直接書く場合
上記はテキストファイルへ書く方法でしたが、次はhtmlファイルに直接記入する場合ですね。これは簡単で、「phpを呼び出したい時に開始と処理コードを記入する」だけです。例えば何も無い空っぽのHTMLファイルがあるとします。中身はこんな感じですね。
<html>
<head></head>
<body>
</body>
</html>
これでbodyの間にphpを入れることも、headの中にphpを入れることもできます。例えば現在日時をbodyタグの中で表示する場合は以下のように行います。
<html>
<head></head>
<body>
<?php
echo date("Y/m/d");
?>
</body>
</html>
途中で<?phpと書いてphpの処理をさせる宣言をして、処理させたいコードを書いて、?>で終了。これだけです。複数回呼び出したい場合はhtml→php→html→phpとかになることもあります。
echo はphpで結果を表示する的な機能を持っているやつです。そういうコマンドがあるって思って貰えばそれでOKです。そしてそのあとのdateが日付を取得する関数です。中身にあるYmdはそれぞれ年/月/日を表しているんですが、それもそういうものがあるって感じでOKです。
この1行を簡単に言い換えると、「日付をY/m/dの形式で出力する」という命令になります。これを実行するとブラウザではこのように表示されます。
headの中身にある何かは気にしなくてOKです。phpがhtmlの中に入れることで使えるっていうのがわかってもらえればOKです。
phpとデータベースの連携
phpはデータベースとの連携がかなりできる言語でもあります。JavaScriptは全て終わったあとで処理を行うのに対し、phpは最初に処理をして結果を返します。この時にデータベースからデータを呼び込んで、それをJavaScriptへ渡すこともできます。
このサイトでは主にMySQLの使い方を解説しています。phpから呼び出すにはPDOを使って取得して使いたいように加工して表示します。
phpとJavaScriptどっちから勉強すべき?
正直どっちでもいいと思います。自分はJavaScriptからでしたが、今ではphpとMySQLとSwiftとJavaScriptと色々と手を出して、必要に応じてそれぞれ勉強しています。サーバーサイドの知識を増やしたい場合、php・Apache・MySQLとまとめて勉強するのがいいと思います。JavaScriptの場合はクライアント側での処理となるので関連する言語といえばそれこそJavaScriptしかありません。
とはいえどの言語も処理もサイト表示という一連の処理を行う上で使われるものです。どこから勉強してもいいと思います。
まとめ
phpはサーバーサイドで使う言語としてデータベースとの連携もかなり便利ですし、単体でも使える言語です。このサイトでphp含めて他の言語の解説もしているのでそちらも参考にしてみてください。
- phpの基礎
- phpとは?JavaScriptとの違いは?みたいなことから、基本の書き方などを解説。
- echoとprint
- 画面に文字を出力する2種類の言語構造の使い方
- 変数
- phpで使える変数の扱い方などを解説しています。
- 変数のスコープ(有効範囲)
- 変数のスコープについての解説です。
- var_dump
- 変数の情報を見ることができる関数
- print_r
- 変数の情報をわかりやすい形式で表示する関数
- 配列と連想配列
- 配列と連想配列の書き方と、便利な関数の解説など。
- key
- 連想配列のキーを返してくれます。内部ポインタ関係あり。
- count
- 配列や連想配列の要素数を数えてくれる関数の使い方解説。
- ソート関数
- 配列に対してソートを行う関数の中から、代表的な5つの使い方解説です。
- array_reverse
- 配列の中身の順番を反転させる関数です。
- array_chunk
- 配列を指定した数で分割させるarray_chunk関数の使い方解説です。
- array_combine
- 2つの配列を足して1つの連想配列にする関数です。
- array_diff
- 2つの配列を比較して、存在しない値を出力する関数
- array_push
- 配列に対して後方に要素を追加する関数
- array_unshift
- 配列に対して先頭に要素を追加する関数。
- array_shift
- 配列の先頭の要素を取り出す関数。
- array_merge
- 複数の配列を統合して1次元の配列にする関数
- array_intersect
- 2つの配列を比較して、両方に共通するものを出力する関数
- include
- includeを使って別のphpファイルを読み込む方法の解説。
- if文
- if文を使って処理を変更させる方法の解説。
- switch文
- switch文を使って複数の処理分岐を行わせたい時に使います。
- forループ
- forループを使って同じ処理を行わせる方法の解説です。
- whileループ
- whileループを使って同じ処理を行わせる方法の解説と注意点。
- do-whileループ
- do-whileループを使って同じ処理を行わせる方法の解説です。
- foreachループ
- foreachループを使って配列内のアイテム全てに処理を行う方法の解説です。
- continue
- ループ処理の残りをスキップしつつ、ループの先頭に戻る制御構造
- ループのネスト構造(入れ子)
- ループの中にループを入れる書き方や考え方の解説。
- function
- functionを使って自作の関数を作成・使用する方法の解説。
- 引数の種類と書き方解説
- functionで扱う引数の種類と書き方を解説
- return
- returnの使い方と関数での使い方解説。
- class
- classを作成して変数と関数を1つにまとめる方法と使い方の解説。
- constructとdestruct
- classのインスタンス作成と同時に処理を行うconstructと、スクリプトの終了と同時に実行するdestructの解説です。
- インターフェイス
- インターフェイスという用語の解説と、実際の使い方解説
- トレイト
- コードを再利用するのに便利なトレイトの解説です。
- 列挙型
- プログラム中で使う変数名をあらかじめ定義しておく。そんな感じの型。
- PDOを使ってMySQLへ接続
- PDOを使ってMySQLへ接続し、データを取得する方法の解説です。
- データの加工と表示
- PDOでデータベースから取得したデータを加工して表示する方法の解説です。
- HTMLフォームのデータ受け取りと表示
- HTMLで作ったフォームからのデータの受け取り方法と、その表示方法の解説です。