去年の10月から新人プログラマとして開発に挑戦しています。
以前は運用系の業務だったため、自分で何かを作って動かすのはほぼ未経験です。
今までは、研修でJavaを覚えてきましたが、新たにPHPを覚えることになりそうなので、PHPについて色々調べてみました。
なかなか物覚えはよくない方なので、自身の備忘録としてここに残しておこうと思います。
#PHPについて
PHPとは正式名称は「Hypertext Preprocessor」と呼ばれているとのことです。
ハイパーテキストって書かれている通り、WEB開発で非常に使われている言語になっているようです。
(私はPHP初心者なのでまだ細かいことはわかりませんが…)
簡単にWEBサイトを作成できることでおなじみの「WordPress」もPHPがベースになっています。
#PHPの記述
PHPはHTMLの中に記述できます。拡張子は.phpとなります。
HTML内で記述する際はbodyタグの中に書きます。
HTML文書内に記述する場合、文頭は、が締めとなります。
ただ、PHPだけで記述されたphpファイルは?>で締めないことが多いようです。
また、PHPは命令の最後にセミコロンを記述しないと、セミコロンが記述されるまでずっと一つの文として扱ってしまいます。
#PHPの構文
##出力
実際にPHPの構文を使って何か文字を出力します。
どんなプログラミング言語もまず初歩は、「HELLO WORLD」を画面に出力することから始まることが多いですね。
PHPでは出力に「echo」を使います。JavaでいうところのSystem.out,print()、C++でいうところの、coutみたいなものでしょうか。
おなじみのHELLO WORLDを出力したい場合、
<body>
<?php
echo "HELLO WORLD";
?>
</body>
と記述します。文字の出力は、自分の知っている言語の中で一番シンプルに見えます。
print "HELLO WORLD";
これでも記述できます。「print」はなじみ深い単語ですね。ただ文字列を出力するだけでも別解が色々あるんですね。
文字列の出力ができたら次は、条件文に行くことが多いイメージですが、
PHPの変数の書き方が独特だったので、まず変数について考えていきます。
##変数の扱い
PHPでは$を変数にしたい文字の頭につけます。PHPには型宣言がなんと無いそうな。
変数の命名規則は、文字列は先頭がアンダースコアかアルファベット、その後にアンダースコア、数字、アルファベットとなります
型宣言intだの、Stringだの考えなくていいのは少し楽に思えます。
ただし型宣言が不要なだけで、データ型自体はばっこしあります。(intとかbooleanとかいうアレ)
文字列を出力したい場合は、ダブルクォーテーション(シングルクォーテーションでも可)
で挟まないと文字列として認識されないことは注意が必要です。他の言語でも同様ですね。
$変数 = "test";
ちなみにデータ型を知りたいときは「var_dump」なるものがあります。
$変数 = "test";
var_dump($変数);
こう書くと、$変数のデータ型を教えてくれます。この例で行くとString型になります。
また、値を変えたくない、つまり定数として扱い場合はdefineを使います。
define("定数",値);
となります。不変の定数(円周率π、自然対数の底e、プランク定数?...etc)やいじりたくない数字、文字を扱うのにいいですね。
Javaでいうfinalみたいなイメージでしょうか。
ここまで、変数と定数について調べたので、次は繰り返し処理について調べてみました。
#繰り返し処理
PHPもほかのプログラミング言語と同様に、for文、while文などの繰り返し処理分が一通りあります。
やはり前述の二つはとりわけし開発初心者の私にとってなじみ深いので
ここからPHPの条件式に慣れていきたいです。
##for文
おなじみの繰り返し文ですね。
構文は次のようになります。
for(初期化文;条件式;更新式){
//ループ処理
}
Javaとほぼ同じですね、違うといえば変数を扱う際に、変数の頭に$を付ける必要があることと、PHPなので
で挟まなきゃいけないくらいでしょうか。
また、このままだと改行がされないので、nl2br("\n")なるものをつけると改行されます。
brは個人的に乱用したくないので、nl2br関数を使っていこうと思います。
for($i=0; $i<=5; $i++){
echo $i.nl2br("\n");
}
私はこれで改行ができていました。ちなみに繰り返し処理同様によく使われるwhile文
条件式、Javaなどの他のプログラミング言語とほぼ同じでしたので割愛します。
#配列
PHPの非常に簡単なルールがわかったところで、配列について調べてみます。
PHPでもそこまで配列の仕様はほかの言語は変わらないようです。
$変数 = [値1, 値2, 値3, ...]
echo $変数[n]
これもそこまで難しくなさそうですね。やはりシンプルです。PHPが初心者向けってよく言われるのが何となくわかったような気がしないでもないです。
配列の中身の取り出し方も[]の中に取り出したい要素のインデックスナンバーを記述すればよいです。
例によって0から始まるので、配列の最初の要素を取り出すときは$値[0]となることに注意しましょう。
#関数
PHPでも関数は使うことができます。
複雑な処理をまとめて処理したい場合、もしくは単調だけど何度も書かなきゃいけない処理なんかは関数を使うとコードがすっきりして見やすくなりますね。
function 関数名(){
//関数の処理内容
}
となります。これもほかの言語でよく見る形になりますね。
関数を呼び出すときは、関数名()を記述するだけでその処理を呼び出せます。
もちろん、
内で記述しなきゃダメです。他のプログラミング言語にも言えることですが、何度も記述する必要のある処理は、関数にしてまとめてあげることで、単純に打ち間違いなども減らし、修正する時間を減らすことができるので、単純に生産性が向上すると思っています
#あとがき
Javaの勉強さることながら、新しくPHPも覚えていきゃなきゃならん!となったとき、ものすごく不安になりましたが、ふたを開けてみたら今まで見たきた言語に似ている部分も多く、むしろPHPでは記述がシンプルなもの多いように感じました。
まだまだ、基礎中の基礎しか勉強していないので勉強中の部分もあります。
これからも少しずつ、備忘録も兼ねてPHPの勉強内容を追記し、あとで見返したときに参考にできればと思う次第です。
以下に今回の学習、備忘録をまとめるにあたり、参考にさせていただいたサイトです。
https://www.kagoya.jp/howto/wordpress/php/