web業界初心者の僕がPHPを学んでみる

さて、web業界に転職して半年が過ぎました。
そろそろ他の事も勉強しようと思って重い腰をあげています。

といってもちょこっとくらいは触っていたので、軽く基本をおさらい

PHP

PHPとは?

PHP: Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。一般的には PHP と省略して用いられており、これは「個人的なホームページ」を意味する英語の “Personal Home Page” に由来する

参照:wikipedia

ということらしい。
静的なHTMLを記述するだけではできないような素敵なことがたくさんできます。

まずPHPを動かすのにはPHPモジュールが必要です。
ですので、レンタルサーバー、もしくはXAMP(MAMP)等で環境の準備をします。

まずは覚書き

関数(ファンクション)

処理をまとめたものって感じでしょうか。
自分で作ったり、はじめから用意されていたりしますね。

<?php
print(date('Y-m-d'));
?>

とすると今の日付(2XXX-12-03)
が出力されます。

引数(パラメータ)

簡単にいうと「値」でいいのかな

<?php print('Hello World'); ?>

これの「Hello World」がパラメータという認識で問題ないかと

戻り値

こいつは文字のまんま
プログラムを実行した結果。戻り値を代入するとなると

<?php
$hogehoge = date('Y');
print($hogehoge);
?>

とやると
$hogehogeという変数にdate関数の返り値(2013)が格納されて、それを出力するといったものになります。
※printでもechoでもどちらでも可

ここで気をつけたいのがこれ

<?php
$hoge = date('Y');
echo ($hoge);
?>

 

<?php
$hoge = date('Y');
echo ('$hoge');
?>

この2つは別ものだということ。
上のものはきちんと変数の中身「2013」を返してくれますが
下のものは「$hoge」という文字列が表示されます。
初めて単純なスクリプト組むときは混乱しちゃいそうですね。

基本的にはシングルクォーテーションでもダブルクォーテーションでもいいらしいのですが

echo ("90s");

 

echo ('90's');

上のものは正しいですが下のものはエラーになります。

echo ('90\'s');

とするか、上の書き方にするようにしましょう。

横道にそれましたが進みましょう。
上でも出てきましたが「$」とはなんでしょう

変数

自分は値を入れておく箱と習いました。
例えばですが

$i = 0;

よく見かけますね。
これは i を変数として宣言して初期値として0を入れています。

定数

これはスクリプト中で変更が効かないもの

define("tax", 1.05);
define("tax", 10.6);

taxを表示させても1.05のままです。

とかしとくと便利
defineを使って宣言する。
「$」は不要です。

配列

これは複数のデータを格納します

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4');

この場合だと
$ttls[0]に「タイトル1」
$ttls[1]に「タイトル2」
$ttls[2]に「タイトル3」
$ttls[3]に「タイトル4」という文字列が入ります。

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4');
for($i=0; $i<=3; $i++) {
print('<h2>' . $ttls[$i] . '</h2>;');
}

 

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4');
for($i=0; $i<4; $i++) {
 print('<h2>' . $ttls[$i] . '</h2>');
}

 

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4');
$i = 0;
while($i<=3) {
print('<h2>;' . $ttls[$i] . '</h2>;');
$i++;
}

全部結果は同じです。

こうするとタイトルが増えた時に不便ですのでcountを使って数を調べちゃいます。

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4', 'タイトル5');
for($i=0; $i < count($ttls); $i++) {
print('<h2>' . $ttls[$i] . '</h2>');
}

タイトル5まで増えても安心。
もっといえばタイトルが100でもなんでも増えても大丈夫になりました。
上のfor文よりもっと簡潔に書くこともできます。

$ttls = array('タイトル1', 'タイトル2', 'タイトル3', 'タイトル4', 'タイトル5');
foreach($ttls as $ttl) {
print('<h2>' . $ttl . '</h2>');
}

いろんな関数があって面白いですね。
最後の方は自分のために羅列した感じになっちゃいましたが
PHPは面白いってことで綺麗まとまりますかね。
今度は簡単なスクリプトを作ってみようと思います。

関連記事