PHP入門 – エンジニアの入り口 https://eng-entrance.com 「エンジニアの入り口」は、プログラミング入門やエンジニアリング入門の知識が満載の初心者のための勉強サイトです。プログラミングやサーバ、ネットワークの基礎知識や勉強方法を習得できます。 Thu, 09 Jun 2022 07:15:50 +0000 ja hourly 1 https://wordpress.org/?v=5.2.19 【PHP入門者向け】 PHPの文字列リテラルについて知ろう https://eng-entrance.com/php-string-literal https://eng-entrance.com/php-string-literal#respond Sun, 07 Jul 2019 01:25:10 +0000 https://eng-entrance.com/?p=7582 リテラル(literal)は、「文字どおり」「字義どおり」を意味する言葉で、プログラミングにおいては計算結果などが反映される変数と違って「最初からその内容と決めておく」ものとして使われるものである。PHPにおいて文字列をリテラルとして扱うとはどういう事なのかを紹介しよう。

文字列リテラル

PHPにおける文字列リテラル

PHPにおける文字列は、可変長文字列であり、その他のプログラミング言語にあるようなchar型といった「単の一文字」は存在しない。

例えると、文章と単語を区別して扱う必要がないということだ。

文字列リテラルは大きく3つある。

ひとつは、シングルクオートによるもの、もうひとつはダブルクオートによるもの、そして最後にヒアドキュメントによる方法を説明していこう。

シングルクオートによる表現

「‘」によって、文字列を表すことが出来る。

<?php
$str = 'これが文字列';
echo $str;

結果は下記のようになる。

ではもう少し実用的な例をみていこう。

いくつかの文字列を結合して出力したい場合があるだろう。

例えば、「PHPレッスン:文字列リテラル」と出力したいとして、下記のようなスクリプトを書いたとする。

<?php
$str = '文字列リテラル';
echo 'PHPレッスン: $str';

結果はこのようになる。

あいにく、「‘」シングルクオートによる文字列リテラル表現では、変数と文字列とは一緒に表示することが出来ない。

シングルクオートはあくまでも、文字列のみか、変数のみか、その2択となる。

では上記のようなことを実現したい場合は、どうすればよいだろうか?

ダブルクオートによる表現

実は、PHPでは「”」ダブルクオートによる文字列リテラルの表現も可能だ。具体的な例をみてみよう。

<?php
$str = '文字列リテラル';
echo "PHPレッスン: $str";

結果はこのようになる。

さきほどのシングルクオートでは実現できなかった、文字列と変数の一緒の表示が出来た。

見ての通り、ダブルクオートによる文字列リテラルには、シングルクオートにはない下記の機能がある。

  • 文字列中の変数展開
  • エスケープ文字の展開

ヒアドキュメントによる表現

実際の現場では、もっと複雑な文章を出力することになるだろう。

そうした時に、いちいちシングルクオートやダブルクオートで出力させていると、プログラムの記述量が増え、一覧性も悪くなってしまう。

そうした場合に活用できるのがヒアドキュメントと呼ばれる文字列リテラルだ。

<?php
$mydream = "たくさんのプログラムを書いて世の中に貢献すること";
$myinfo = <<<EOD
はじめまして。私の夢は{$mydream}です。よろしくお願いします。
EOD;
echo $myinfo;

結果は下記のようになる。

このプログラムについて説明しよう。

まず、$mydreamという変数に具体的な「夢」についての文章をセットする。

次にEODという文字が2つある。

これがヒアドキュメントで、具体的には、

<<<EOD から EOD;  で囲われた範囲をまるごと、文字列表現としてセットすることが出来る。

今回の例だと、「はじめまして」から「よろしくお願いします。」までだ。

ヒアドキュメントそのものは、出力する機能はないため、その文字列のセットを$myinfoという文字列にセットする。

そして最後にechoにて$myinfoの変数の中身を出力している。

ここでのポイントとしては、「 私の夢は{$mydream}です 」の部分だ。

ダブルクオートのところで、文字列と変数との一緒の出力は「“」ダブルクオートで囲んでいれば展開されて出力されると説明したが、少し注意も必要だ。

 

たとえば、下記のような場合だ。

<?php
$str = "abc";
echo "$strdef";

この場合、出力結果は 白紙 になる。

なぜだろうか?

よく見てみてほしい。

echo "$strdef";

プログラムを作成した本人ならば、分かるかもしれないが、プログラムを解釈する側には、どこまでが変数で、どこからが変数ではない通常の文字列が分からないのだ。

こういう場合は、きちんと解釈してもらえるようにわかりやすくする方法がある。それが「{ }」 で変数を囲むという方法になる。

<?php
$str = "abc";
echo "{$str}def";

これでようやく正しく出力された。

ちなみに、ヒアドキュメントを使う場合の注意事項は下記の通り。

  • <<<に続く終端識別子は直前に空白などは含めない
  • 終端識別子を記載したらすぐに改行すること

以上がPHPによる文字列リテラルになる。

まとめ

PHPプログラミングでメッセージを出力する際に、一部に変数を含む文章などを出力するような場面が何度も出てくるだろう。本記事中で紹介したヒアドキュメントなどを活用してみてほしい。

 

]]>
https://eng-entrance.com/php-string-literal/feed 0
【PHP入門者向け】 文字列の中の変数展開についてまとめました https://eng-entrance.com/php-string-variable https://eng-entrance.com/php-string-variable#respond Sat, 15 Jun 2019 13:06:43 +0000 https://eng-entrance.com/?p=7568 PHPで文字列を画面に表示させる際には、その内容に変数を使用することができる。文字列に対してどのように変数を差し込んでいくのかを紹介していこう。

PHPにおける文字列の中の変数展開について

PHPにおける文字列の変数展開とは、すなわち、文中における変数の値出力のことだ。具体的な方法から示していこう。

ダブルクオートを使った文字列展開

「“」ダブルクオートによって、文字列の中で変数を展開することが出来る。

まずは $str という名前の変数を宣言して文字列を代入し、それを表示させてみよう。

<?php
$str = "天国";
echo "此処から先は、地獄か $str だ。選ぶのはあなた次第。";

出力結果は下記のようになる。

見事に $str という変数の中に値が文字列中に出力された。

PHPには同じような文字列を定義する方法として、「‘」シングルクオートによる方法がある。しかしこちらの方法では、文字列中の展開は出来ないので要注意である。あくまでも、単一。たとえば、変数だけ、とか文字列だけ、などの場合にのみ対応できる。念のため確認しておこう。

<?php
$str = "天国";
echo '此処から先は、地獄か $str だ。選ぶのはあなた次第。';

先ほどの例とほぼ同じだが、最終的に出力するecho文を「’」シングルクオートによる記法に変更した。

結果はこのようになる。

$strがそのまま表示されてしまった。

つまり「’」シングルクオートによる記法では、変数展開がされなかったことが分かる。よって、文字列中に変数展開したい場合は、「“」ダブルクオートによる方法で行う。

ダブルクオートを使う場合の注意

ダブルクオートによる変数展開をする場合に気をつけたいのが下記のようなケースである。

<?php
$str = "abc";
echo "$strdef";

この場合、出力結果は何もない「白紙」になる。

白紙とは、PHPでいうところのプログラムのエラーを意味する。つまり、プログラムとして何か不備があり、PHPとしては不完全な結果を表している。

今回のケースに限らず、PHPがプログラムをうまく処理出来なかった場合は、このように「白紙」画面となるため、PHPプログラマの間ではあるあるな話であり、最も恐れている事象でもある。

白紙の原因を探ってみよう

恐れてばかりでもいられないので、原因を考えてみよう。なぜ、今回はこのような結果になったのだろうか?

下記の部分をよく見てみてほしい。

echo "$strdef";

プログラムを作成した本人ならば分かるかもしれないが、この行を見る限り、プログラムを解釈する側には、どこまでが変数で、どこからが通常の文字列が分からないのだ。$s という変数かもしれないし、$strder という変数かもしれない、そんな風に読み取れはしないだろうか?人間にも判別が付かないのだから、PHPではなおさらだ。

ここで行うべきは、どこまでが変数でどこからが通常の文字列かを示すことだ。こういう場合は、きちんと解釈してもらえるようにわかりやすくする方法がある。

それが「{ }」 で変数を囲むという方法になる。下記を見て欲しい。

<?php
$str = "abc";
echo "{$str}def";

これでようやく出力が確認できる。

このようにすることで、変数を明確に示すことが出来る。今回のようなケースに限らず、{}による記法は、日常的に心がけるのがよいだろう。

まとめ

PHPプログラムで文字列を表示する際に、定型文の中にある特定の部分を変数にした上で実行結果に応じてその内容を変えるというような事はよくあるだろう。

今回はその方法と表記の際の注意点を解説した。

変数を1つだけでなく2つ、3つと増やしたり、文字列を複数行にしてみたり、など応用してみよう。

]]>
https://eng-entrance.com/php-string-variable/feed 0
【1分理解】PHPの文字列をエスケープする方法 https://eng-entrance.com/php-escape https://eng-entrance.com/php-escape#comments Mon, 12 Jun 2017 06:24:55 +0000 https://eng-entrance.com/?p=5880 PHPを扱っていれば特殊な文字でエスケープが必要なシーンはどうしても出てくる。

このページではPHPの文字列エスケープについて見ていこう。

PHPでの文字列エスケープ

それでは簡単にPHPにおける文字列のエスケープについてみていこう。

エスケープの必要性

そもそもエスケープ処理とは、通常の記法では出力できないような文字をどうにかして出力させる処理のことをいう。

例えば、PHPにおいて文字列出力をする方法の1つに「’」で囲む記法があるが、その肝心の「’」を出力したい場合はどうすればよいだろうか。

まずは下記のコードを見ていただければと思う。

<?php
    echo '今日もA'は元気だ。';

文字のエスケープ

この出力を「今日もA’は元気だ。」にしたい場合はどうすればよいだろうか?

単純にこんなコードを書いてしまわないだろうか

<?php
   echo '今日もA’は元気だ。';

残念ながらこのPHPコードはコンパイルエラーになる。

「’」はそもそも文字列を囲む必要があるので、始まりと終わりで2つあればよい。だが、3つになってしまっているので、PHPで解釈できない。

ここで「’」を文字列として出力させたい時に使うのがエスケープ処理だ。

バックスラッシュ(もしくは¥)によるエスケープ

書き方は次のようになる。

<?php
   echo '今日もA\'は元気だ。';

「¥」もしくは「\」記号によって直後の文字をエスケープすることで、そのまま文字列として出力することができるようになる。

エスケープが必要な文字は何も、「‘」だけではない。改行やタブなど、普段出力を意識しないような文字にも利用される。

いくつかエスケープ例をあげよう。

PHPエスケープの実例

改行

<?php
      echo "今日も明日も\n元気でいこう";

実行結果は下記のようになる。

今日も明日も

元気でいこう

改行のエスケープシーケンスは「¥n」だ。

ちなみに、エスケープ文字によっては、ブラウザでは確認が難しいものがある。

この改行もそうなのだが、ブラウザを通して改行を表現するためには、HTMLタグである<br>を利用する必要がある。

だから、ここでは、純粋に素のPHPのサンプルとして上記の通り表すことにする。

エスケープ実例「タブ」

おなじみのタブも下記のようなコードで表すことができる。

<?php
    echo "今日も明日も\t元気でいこう";

タブのエスケープシーケンスは「¥t」だ。

エスケープシーケンスは他にもたくさんあるが、まずは上記を掴んでいただきつつ、必要なときに調べていただければと思う。

まとめ

このページではPHPの文字列エスケープについてお伝えをした。参考にしていただければ幸いだ。

]]>
https://eng-entrance.com/php-escape/feed 1
【5分でまるっと理解】PHP正規表現の使い方まとめ https://eng-entrance.com/php-regularex https://eng-entrance.com/php-regularex#comments Fri, 28 Oct 2016 02:16:44 +0000 http://eng-entrance.com/?p=3176 フォームを扱うことが多いPHPでは、正規表現はしょっちゅう使うことになる。本当にしょっちゅうだ。

電話番号を判定したり、メールアドレスが正しいか確認したり、YouTubeのURLからapiデータを引っ張ってきたりと正規表現は様々なところで活躍する。

このページではPHPの正規表現についてまとめた。参考にしていただければと思う。

PHPにおける正規表現とは?

まずは、正規表現そのものについて簡単にご紹介しよう。PHPではフォームのチェックやインポートデータの確認など、ユーザがWebから入力した何かのチェックに使うことが多い。

正規表現とは?

正規表現とは、日本語のままではイメージしづらいが、英語では「Regular Expression」という単語で表されている。もしかしたら、こちらの方がイメージしやすいかもしれない。

特別なルールで決められた特別な文字の組み合わせを使って実現させる式のことだ。

説明が難しいのでもっと容易に説明すると、、、

正規表現とは?その2

「こんな部分の文章だけ抜き出したい!」という要望に応えるものだ。

例えば、下記のような文章があったとしよう。

  • リスキルテクノロジーの住所は〒160-0022 東京都新宿区新宿3-1-13 京王新宿追分ビル4階です
  • 大阪府庁の住所は〒540-8570 大阪市中央区大手前2丁目 大阪府庁本館1階です

この中で、郵便番号だけを抜き出して、別のファイルに書き込みたいとする。人間だったらすぐに判定がつくはずだ。

「郵便番号って〒があって、その後に3つの数字があって、次に-が書いてあって、その後に4つの数字がある部分だよね」

これをプログラムが判断できるようにしたのが正規表現だ。下記のような用途、機能を実現させるために利用できる。

  • 特別な文字や記号で校正された検索式
  • 対応するツール、プログラム言語共通の検索式
  • 文字列に対して検索、置換処理が可能

さっそく正規表現を行う上で定番の知識についてみていこう。 

正規表現の基本的なしくみ

文字列に対する正規表現パターンマッチは、下記のように動作する。

  • ステップ1. 文字列の先頭から調べる
  • ステップ2. 次にその位置でマッチしなかった場合は、次の文字に移動して再度調べる
  • ステップ3. 途中でマッチした場合は、その位置でマッチング作業を終える
  • ステップ4. マッチするものがなければ、文字列を最後まで調べて終わる 

左から始まりマッチした時点で終了する、というのが一般的だ。下記の例では、 catのcaにマッチしたところで正規表現は終了となり、後ろのCaliforiaにはマッチしない。

正規表現 : ca

文字列 : My cat’s name is Califoria

後ほど見ていくが、マッチしているかをtrue or falseで返したり、マッチした場所を数字で返す関数が用意されている 

正規表現の例

細かいところに入っていく前に実際にプログラムを動かしてみるとわかりやすいだろう。

<?php
echo preg_match("/c[aeiou]t/", "I love my cat");
echo preg_match("/c[aeiou]t/", "I love my dog");
?>

preg_matchは第一引数の正規表現に第二引数のテキストが一致していたら、trueを返してくれる関数だ。

/c[aeiou]t/

が正規表現に当たる。これは、「1文字目がcで、2文字目がa,e,i,o,uのどれかで、3文字目がt」の文章があるかどうか?という正規表現だ。「cat」はまさしくそれにあたるが、"I love my dog"にはそれに当たる文字が無い。なので結果は、

1
0

となる。

基本的な正規表現

よく使われる正規表現の一覧をご紹介していこう。後ほど特に使うものは例も踏まえてご紹介する。

^

行頭にマッチする

例:1、^hello。行頭にhelloの文字列はこのパターンにマッチする。

$

行末にマッチする

例:1、hello$。行末にhelloの文字列はこのパターンにマッチする。

.

改行以外の任意の1文字にマッチする

例:1、hello.world。hello worldやhello-worldなどの文字列はこのパターンにマッチする。

[]

角括弧内の任意の1文字にマッチする

例:1、[abc]。aかb、cはこのパターンにマッチする。

2,r[aeu]d。radやred、rudはこのパターンにマッチする。

[A-Z]

英大文字A-Zの任意1文字にマッチする

例:1、a[A-Z]c。aAc,aBc,…,aZcなどの文字列はこのパターンにマッチする。

[a-z]

英小文字a-zの任意1文字にマッチする

例:1、a[a-z]c。aac,abc,…,azcなどの文字列はこのパターンにマッチする。

[0-9]

数字0-9の任意1文字にマッチする

例:1、a[0-9]c。a0c,a1c,…,a9cなどの文字列はこのパターンにマッチする。

[^]

角括弧内に含まれない1文字にマッチする

例:1、[^abc]。a、b、c以外の文字はこのパターンにマッチする。

*

直前の表現を0回以上繰り返す

 例:a、ab、abb、abbbなどはマッチする。

+

直前の表現を1回以上繰り返す

例:ab、abb、abbbなどの文字列はこのパターンにマッチする。

?

直前の表現を0回または1回繰り返す

例:1、ab?。aとabはこのパターンにマッチする。

{n}

直前の表現をn回繰り返す。nは整数。

例:1、ab{2}。abbはこのパターンにマッチする。

{n,}

直前の表現をn回以上繰り返す。nは整数。

例:1、ab{2,}。abb、abbbなどはこのパターンにマッチする。

{n,m}

直前の表現をn回からm回まで繰り返す。n,mは整数。

例:1、ab{2,5}。abb,abbb,abbbb,abbbbbはこのパターンにマッチする。

a|b

aまたはbにマッチする

例:1、hello|world。helloまたworldはこのパターンにマッチする。

()

グループ化。()内のパターンは(グループ)と見なされる。このグループに一致する文字列を記憶する。1,2..などの数字によるグループへのアクセスできる。

 

[あ-ん]

ひらがなの1文字にマッチする。

例:1、"あいう".matches("[あ-ん]*")。trueを返す。

文字クラス[]

基本的な使い方

[]を文字クラスと呼び、囲まれた文字のどれか1文字にマッチする表現となる。たとえば[12]という正規表現の場合は、1もしくは2にマッチする。

[abcdefg]

とすると、a、b、c、d、e、f、gの何れかの文字という意味だ。

一括で範囲を表す

さらに[]の中で、-を使うと範囲をあらわせる。たとえば、[1-5]とした場合は、1,2,3,4,5にマッチする。

[0-9]  0123456789のいずれか1文字にマッチ

[a-zA-Z0-9]  01〜9ab〜zAB〜Zのいずれか1文字にマッチ

否定

また文字クラスの中で ^ を使うと否定になる。

[^0-9]  数字以外の1文字にマッチする。

文字列クラスでマッチするのは、あくまで1文字だ。

量指定子

量指定子と呼ばれるものが、4つある。これはその前の要素を何個繰り返すか?という指定だ。

それぞれ見ていこう。

「?」は直前の要素が0個か1個の場合にマッチする。

https?

直前のsに対してマッチするので、httpかhttpsがマッチ対象となる

*

アスタリスク「*」は直前の要素が0個以上繰り返し存在する場合にマッチする。

go*d 

oに対してマッチしようとするので、 god や gd や good がマッチする。

「+」は直前の要素が1個以上繰り返し存在する場合にマッチする。

o+ 

oという文字が1個以上連続する場合なので god や goodやgoooodにマッチする。

{n} {n,} {m,n}  

直前の要素の繰り返しの数を指定する。

a{5}  

aが5個繰り返されるので、 aaaaaにマッチする。

a{1,3} 

a や aa や aaaにマッチする。

a{1,}  

aが1以上繰り返されるものにマッチする。

選択

() には3つの役割がある。

  • 他の正規表現の一部として利用する
  • 正規表現の有効範囲を指定する機能

他の正規表現の一部として利用する場合

(red|white|yellow)手袋  

これはred手袋、white手袋、yellow手袋のいずれかにマッチする。「|」は複数の選択肢のいずれかにマッチさせる場合に利用する。

ここにおける()は、手袋という他の正規表現との一部として機能している。

正規表現の有効範囲を指定するケース

php(man)?  

これはphpかphpmanのいずれかにヒットする。

manを一括りにした正規表現としてあらわしており、これをグループ化と呼ぶ。

位置に対するマッチ

位置を指定する正規表現もいくつかある。

^

「^」は文字列の行頭にマッチする。ポイントとしては、マッチするのは、先頭の文字ではなく、行頭だということだ。

^cat 

category や cat  1 にはマッチするが、tomcatにはマッチしない。

$

「$」は文字列の末尾にマッチする。

¥

「¥b」は単語境界にマッチする。

blue¥b  

bluejeansにはマッチせず、blueにマッチする。

正規表現は検索対象の文字列の隣接する2文字をみて、単語を構成する文字とそうでない文字が並んでいる場合にはそれを単語の境界とみなす。

そうでない文字とは、空白文字やタブなどの文字のことだ。

上記が、アプリケーション言語に関係なく、正規表現を利用するために、知っておきたい基礎項目だ。

PHPがサポートしている正規表現

では、PHPから正規表現を扱うに必要な知識をまとめていく。

PCREとPOSIX

PHPには大きく2種類の正規表現エンジンが用意されている。1つはPerl互換のPCRE、もう1つはPOSIX拡張だ。

PCRE正規表現を扱う関数はpregで始まり、POSIX拡張正規表現を扱う関数はeregで始まる。ereg系の関数はバイナリセーフではないため、セキュリティの観点からもオススメできず、PHP5.3以降では原則非推奨となっている。

ereg系は、バイナリセーフでないこと、preg系よりも処理効率が悪いなどの点もあり、一般的にPHPで正規表現を扱う際はPCRE系を利用することとなるだろう。

文字コードの問題

実は、preg系で処理できるのはUTF-8だけだ。

今やPHPアプリケーションのほとんどはUTF-8の文字コードで記載されているが、それでもSJISやEUC-JPなど古いアプリケーションにはそういった文字コードで動いているものもある。それらのマルチバイト文字列を処理したい場合はどうすればよいだろうか?

そんな時のために、PHPにはもう1つ正規表現エンジンがある。

それが、mb_ereg系と呼ばれるものだ。文字コードがUTF-8以外のマルチバイト文字列に対して正規表現を行いたい場合は、こちらを利用しよう。

mb_ereg系はereg系とは異なり、バイナリセーフなため、またPHP5からは内部の正規表現検索エンジンがマルチバイトに強い「鬼車」に変わった為、安心して利用できる。

PCRE正規表現構文について

PCRE正規表現を扱うための構文を紹介しよう。

デリミタ

記述したパターンはデリミタで囲む必要がある。一般的には / (スラッシュ)を利用することになる。

メタ文字

正規表現でパターンを表す為の特殊な文字をメタ文字と呼ぶ。

主に下記の通り。

メタ文字

説明

\

多目的に使う一般的なエスケープ文字

^

検索対象(複数行モードでは行)の始まりを言明

$

検索対象の終わりあるいは終端の改行文字の前(複数行モードでは行の終わり)を言明

.

改行を除くすべての文字にマッチ(デフォルト時)

[

文字クラス定義の開始

]

文字クラス定義の終了

|

選択肢の開始

(

サブパターンの開始

)

サブパターンの終了

?

( の意味を拡張/0 または 1 回マッチ/なるべく少ない回数だけマッチ

*

0 回以上の繰り返し

+

1 回以上の繰り返し

{

最小/最大を指定する量指定子の開始

}

最小/最大を指定する量指定子の終了

PHPでの正規表現の使い方

PHPで利用される正規表現の関数について見ていこう。

preg_match

preg_matchの使い方の定義は下記のようになる。

第一引数 : 正規表現を記述する。

第二引数 : パターンマッチの対象となる文字列を指定する。

第三引数 : 配列変数を渡す。パターンマッチに成功した場合はその配列変数に値が格納される。

戻り値  : マッチに成功した場合は1 、失敗は 0が返る。

<?php
$text = 'My name is Tom';
$reg = preg_match('/\btom\b/i',$text,$matches);
var_dump($matches);
?>

ここでは、tom という文字列を大文字小文字関係なくマッチしたものを取得する正規表現だ。結果は下記のようになる。

 

array(1) { [0]=> string(3) "Tom" }

preg_match_all

preg_matchは一致するものがあった時点で検索をストップする。だが、マッチするものを全て取得したい場合もあるだろう。そんな時は、preg_match_allを使おう。

<?php
$text = 'My name is Tom. I heard You are also Tom, right? No, I am Tommy.';
$reg = preg_match_all('/\btom\b/i',$text,$matches);
var_dump($matches);
?>

文中には、 Tom と tom の2つがありそれら全てがマッチしてほしい。ちなみに、Tommyはマッチしないので注意だ。(¥bなので)

結果は下記の通り、Tomとtomがマッチした。

array(1) { [0]=> array(2) { [0]=> string(3) "Tom" [1]=> string(3) "Tom" } }<br>

ほぼpreg_matchと同じような利用方法だが、matchesに返却されるのが2次元配列という点が異なる。

preg_replace

検索が出来れば、置換も出来る。それがpreg_replaceだ。

<?php
$text = 'I like a dog';
$reg = preg_replace('/a (.*)/i', 'a $1 race', $text);
echo $reg."\n";
?>

like a とそれに続く文字列を書き換えるケースだ。結果は下記のようになる。

I like a dog race

preg_replaceも使い方はpreg_matchとほとんど同じだ。

第一引数 : 正規表現を記載する。

第二引数 : 置換後の文字列を指定する。区切り文字の / などは不要だ。

第三引数 : パターンマッチの対象となる文字列を指定する。

第四引数 : (省略可能)1つだけ置換したい場合は1を指定。

まとめ

このページではPHPの正規表現についてまとめてきた。

はじめは何を言っているのかわからないかもしれないが、必要な状況に会えば必ずピンとくるはずだ。そのときには、再度見直してみてほしい。

]]>
https://eng-entrance.com/php-regularex/feed 9
【PHP入門者向け】PHPによる文字列の連結 https://eng-entrance.com/php-basic-concatenate https://eng-entrance.com/php-basic-concatenate#respond Sat, 06 Aug 2016 07:21:16 +0000 http://eng-entrance.com/?p=2077 プログラミングでは、出力時点で文字列をくっつけることがよくある。

このページではPHPでの文字列の連結についてお伝えしよう。

文字列の連結について

ある文字列と別の文字列を連結して出力するということはプログラミングではよくある処理の1つである。

たとえば、下記のような3つの文字列があったとしよう。

  • 今日は
  • 傘を忘れずに

これらは1文として表示してこそ、意味のあるものになる。

初めから1文として作成できればそれに越したことはないが、実際には、雨ではなく晴れの場合もあるし、今日ではなく明日の場合もあるだろう。

つまり、文字列の連結を行うことで、色々な条件のもとで、バラバラに生成された文字列に意味を与えることが出来る。

PHPにおける文字列連結の方法

PHPで文字列連結には、下記のいずれかを使う。

  • 「.」 ピリオドによる連結
  • echoを利用した 「,」 カンマによる連結

「.」 ピリオドによる連結

まずは 「.」 ※ピリオドによる連結についてみていこう。

使い方はこうなる。

<?php
echo "明日" . "晴れるといいな";
?>

echoによる出力

このパターンは少し単純だったかもしれないが、本当に「.」1つで文字列連結できることが確認できた。

次は少し応用編で、変数を連結させてみた例だ。実際の使い方はこのようになる。

変数についてはまた解説するので、わからなくても雰囲気で読んでみていただきた。

<?php

// 初期化

$now = "";
$weather = "";
$action = "";

$now = "今日は";
$weather = "雨。";
$action = "傘を忘れずに!";

// 出力
echo $now . $weather . $action;

?>

ブラウザ上には下記のように表示される。

「.」による文字列の連結

最後の出力のところで、$now,$weather,$actionという変数を連結して表示している。ピリオドを間に挟むことでその変数や文字列を連結する事ができる。

echoを利用した 「,」 カンマによる連結

次にecho による , 区切りでの連結表示についてみていこう。

使い方はこうだ。

<?php

// 初期設定
$x = 1;
$y = 2;
$z = 3;

// 出力
echo $x , $y , $z;

?>

結果は下記のようになる。

echoによる出力

echoというと、単純に文字列出力だけと思われがちだが、カンマ区切りで指定することで、簡易的に連結表示することが出来る。

まとめ

このページでは文字列の連結についてお伝えした。

プログラミングによって連結の方法は異なる。「.」はPHPを使う上で必ず使うので、覚えておこう。

]]>
https://eng-entrance.com/php-basic-concatenate/feed 0
初心者でも3分理解!PHPの特徴12選 https://eng-entrance.com/php-feature https://eng-entrance.com/php-feature#comments Tue, 19 Jul 2016 02:11:30 +0000 http://eng-entrance.com/?p=1799 PHPはプログラミング言語の中でも習得が早く、使い勝手のいい言語として知られている。

様々な場面で「PHP」という言葉を耳にするはずだ。それだけ汎用的に使われている。

このページでは、PHPの特徴について初心者の方でもすぐに理解できる範囲でまとめた。読めば、「PHPとはこういう言語か」というのが大まかにわかるようになるだろう。

PHPのプログラミング言語としての特徴ではなく、まず何ができるかを知りたい方は、下のページのが参考になるはずだ。こちらを先に読んでいただくと理解も深まるだろう。

PHPの概要的な特徴

特徴その1.多くのWebサービスで使われている

PHPは多くのWebサービスで使われている需要の大きい言語だ。実際、次のようにプログラミングの人気度も高い。Javaが圧倒的に高いが、PHPはJavaScriptなどと並んで、使用頻度が高い言語になっている。

プログラミング言語の人気

以下はPHPで作られている代表的なソフトウェアだ。

  • Concrete 5
  • EC Cube
  • Media Wiki
  • OpenPNE
  • phpMyAdmin
  • Pukiwiki
  • XOOPS
  • WordPress
  • Zabbix

これ以外にも、世界最大のSNSであるFacebookはもともとPHPで開発されている。現在はPHPを独自に拡張したHackというプログラミング言語で改良が行われている。

特徴その2.初心者が勉強をはじめるのに適している

初心者が、プログラミングをはじめる際に、以下の点でつまづくことが多い。

  • プログラミング言語を動かすための開発環境がまず作れない
  • プログラムを書いて動かすまでに、ツール導入などの手間が多い
  • 基本的な部分からすでに難しい
  • エラーの解決方法が分からない

PHPは下記の特徴にもある通り、これらの問題で詰まることが少なめだ。初心者が勉強を始めるのに適した言語だと言える。

プログラミング言語としての特徴

続いてPHPのプログラミング言語としての特徴を説明しよう。

特徴その3.動作確認が簡単

PHPはC++やJavaのような他の言語とは違い、動作確認が非常に楽なのが特徴だ。

C++やJavaには、書いたプログラムを実行するために、コンパイルと呼ばれる作業が必要になる。コンパイルとはコンピュータがプログラムを実行できる言葉に翻訳する作業だ。

下記のような形で、一回翻訳して機械語ファイルに直してからCPUで実行する流れになる。

コンパイル

一方でPHPは書いたプログラムを保存すれば、翻訳することなく動作する言語だ。

インタプリタ

このような言語の方式をインタプリンタと呼び、PHPのようなスクリプト言語に多く採用されている。

翻訳作業を行う必要がないので、楽に動かすことができる。プログラムファイル保存後は、ブラウザからPHPが置いてあるページを見れば勝手に実行される。

この手軽さはPHPならでは、だ。

特徴その4.Webアプリケーションに特化したプログラミング言語

PHPはWebアプリケーションやWebサービスといった、Web系の何かを作るのに特化したプログラミング言語だ。基本的に他のことはできないと思って頂いて構わない。

もともとホームページを改良するツール程度のプログラミング言語だったが、便利だったため一気に広がり、進化も遂げた。プログラミング言語としてできる幅も広がった。しかし、引き続きWebアプリケーションに特化した言語として存在している。

PHPにはWebアプリケーションに必要なWebサーバとの通信のリクエスト受信、レスポンス送信機能などが標準で搭載されている。

特徴その5.HTMLの中で簡単にコードを動かせる

PHPは、HTMLの中にタグ埋め込むようにして、コードを書くことで動作が可能だ。HTMLがよくわからない方は、下記のコードは読み飛ばして欲しい。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>PHPのサンプルページ</title>
</head>
<body>
  <?php for ($i = 0; $i < 20; $i++) { ?>
    <div>
      <?php echo $i; ?>番目のコンテンツのブロックです。
    <div>
  <?php } ?>
</body>
</html>

上記のように数行のコードを書くことでHTMLだけではできない動きをつけたプログラムとしての動作が可能だ。

このように少しだけWebページでプログラムを動かしたいという場合、PHPは最適な方法だ。すぐに手間なく書け、実行結果もすぐに見ることができる。

実際、多くのWebサイトやブログシステムがPHPでできている。近年、Webサイトなどが進化して「ちょっとしたプログラム」を使わないといけない場面が増えているからだ。

特徴その6. サーバーサイドのプログラミング言語である

PHPとよく比較されるプログラミング言語が、JavaScriptだ。この両者はスクリプト言語だが、動作については全く異なる。

JavaScriptはHTMLやCSS、画像と同じようにブラウザを表示しているPCにファイルをダウンロードしてから実行し動作する。

これはクライアントサイドのプログラミング言語と呼ぶことが多い。下記のような分け方だ。

クライアントとサーバ

一方でPHPはWebサーバ上にファイルを置いて、以下の順で実行される。

  • ブラウザ見ているユーザがクリックなど何かの操作をする
  • その動作を受けたプログラムがサーバで動作する
  • 動作結果をレスポンスとして、インターネット経由で送り、ブラウザ上に表示する

PHPのような言語は、サーバサイドのプログラミング言語と呼ばれる。PHPはサーバー側で動くプログラミング言語だ。

特徴その7.オブジェクト指向にも対応している

PHPには他のプログラミング言語と同様に、オブジェクト指向のプログラミングが可能な言語だ。

オブジェクト指向とは?については下記のページが詳しい。

PHPは最初からオブジェクト指向のプログラミング言語だった訳ではない。PHP5からオブジェクト指向の機能が本格的に導入されたため、それまでのバージョンでは関数ベースの機能しかなかった。

時代のニーズに応じて大きく変更を加えた言語だ。

特徴その8.データベースへの接続が簡単

Webアプリケーションを作る場合に、ページの内容をユーザの要求やブラウザのURLよって自動的に変えるためのデータが必要となる。

その時にデータを保存するツールとして最も利用されるのがデータベースだ。PHPはデータベースとの接続が、標準機能で簡単に出来る。

数行でデータベースから必要なデータを取得し、ブラウザなどの画面上に表示するプログラムが作れる。 

PHP開発環境の特徴

PHPでのプログラムを作成するための開発環境や使われているアプリケーションの特徴について説明する。

特徴その9.開発環境が簡単に用意できる

PHPを動かすために動作環境を準備する必要がある。PHPの一番メジャーな動作環境で言えばLAMPである。

  • L:Linux
  • A:Apache
  • M:MySQL
  • P:PHP

これはPHPと動作するのに必要なミドルウェアの頭文字を取ったものだ。多くのレンタルサーバーはこの構成でできている。かつ、PHPが動くことも前提で作られているので、月数百円払えばPHPプログラムを作ることが可能だ。

さらに、すぐにそれを世の中にも公開できる。勉強をはじめるのにいいモチベーションになるのではないだろうか?

また、WindowsやMacなどでもPCでもLAMPのような動作環境を作ることは出来る。XAMPPというツールを使えばすぐに環境が作れる。

XAMPPは、ApacheとMySQLとPHPが入ったツールである。ダウンロードしてインストールするだけであとは、ボタンをクリックすれば使えるような簡単ツールだ。

特徴その10.専用の開発ツールがなくても作成できる

PHPは専用の開発ツールがなくてもプログラムが書ける。下記のように、OSに搭載されているテキストエディタでプログラムを書ける。

  • Windows:メモ帳
  • Mac:テキストエディタ
  • Linux:Vi

最初のうちは上記のようなテキストエディタで、プログラムの構文に慣れてから、Sublime TextやEclipseなどの開発ツールを使うと更に開発効率が上がるだろう。下記はご参考に。

特徴その11.公式マニュアルが豊富

PHPにはPHP マニュアル(https://secure.php.net/manual/ja/index.php)という公式サイトがある。

これはPHPのプログラミング言語の仕様が全て載っている。

主な内容は以下の通り。

  • インストール方法
  • 各バージョンでの機能や、前後のバージョンとの差異
  • 使える値の型や種類
  • 使える構文
  • 標準関数の引数や戻り値
  • クラスやモジュールの機能について

PHP マニュアルには標準関数やクラス、モジュールで提供されている機能について、サンプルのプログラム付きで解説が載っている。

プログラムを書く際に参照することが多くあるので、初心者は是非ともチェックすべきだ。

特徴その12.フレームワークが多い

フレームワークとは開発の効率を上げるために、アプリケーションでよく使う機能のプログラムが既に完成された型のようなものだ。

Webアプリケーションの場合は、以下の機能がフレームワークで提供されていることが多い。

  • Webサービスのリクエスト受信、レスポンス送信
  • データベース接続
  • HTMLのレイアウト

大規模なアプリケーションの場合、上記のような基本となる機能はフレームワークで既に作られているため、一からプログラムを作ることはあまりない。

基本となる機能は既にあるため、アプリケーションの画面デザインやプログラムのロジックの作成に注力する。

PHPの場合、他の言語と異なり以下のように多くのフレームワークがある。

  • CakePHP
  • CodeIgniter
  • FuelPHP
  • Laravel
  • Phalcon
  • Symfony
  • Yii
  • Zend Framework

ここに挙げたのは代表的なもので、他にも多くのフレームワークが存在する。

選ばないといけないというデメリットはあるが、機能の特徴に合わせて選べるというメリットも大きい。

フレームワークは一度使い方を覚えると、その後はスムーズに使えるようになる。そのためプログラムの構文を覚えたら、上記のフレームワークを使ってプログラムを作ってみるのも良いだろう。

まとめ

このページではPHPの特徴をまとめてご紹介した。

  • Webに特化している
  • サーバーサイドのプログラムだ
  • 初心者に優しい

という3点をまずは掴んでおけばいいだろう。興味が出てきたら、ぜひPHPの勉強を始めてほしい。

]]>
https://eng-entrance.com/php-feature/feed 4
【PHP入門者向け】1分でわかるPHPコメントアウトの書き方 https://eng-entrance.com/php-basic-comment https://eng-entrance.com/php-basic-comment#respond Tue, 12 Jul 2016 01:33:57 +0000 http://eng-entrance.com/?p=1644 プログラミングにおいて、コメントは重要だ。コメントにして実行されない部分を作ることをコメントアウトという。

このページでは、PHPでのコメントアウトのやり方をお伝えした。本題を早く知りたいという方が多いと思うので、サクサクとお伝えする。

PHP入門者の方は参考にしてほしい。

コメントの書き方

そもそもコメントとは? また、どういうコメントが正しいコメントなのかを知りたい方は先に下のページを読んでみてほしい。

それでは、PHPのコメントについてご紹介していこう。

3種類のコメントアウト

PHPでのコメントの書き方は3パターンある。

//コメント

#コメント

/*コメント*/

「//」「/**/」はC系言語を引き継いでいて、「#」はUnix系のシェルのコメントを引き継いでいる。

使い方はそれぞれ次の通りだ。

<?php

//1行コメントだ

#1行コメントだ

/*複数行のコメント
複数行のコメント
複数行のコメント
複数行のコメント
*/

?>

  • 「//」は1行コメントだ。後ろの文字がコメントになる
  • 「#」も1行コメント。後ろの文字がコメントになる
  • 「/* */」は複数行のコメントだ。挟まれた部分がコメントになる

このPHPプログラムを実行しても何も表示されない。すべてコメントになっているからだ。

プログラムが長くなってくると、ここで何がしたいんだっけ?と思うことが増えてくる。

そんなときに備え、処理を分かりやすくするためにコメントを残そう。

複数行コメントのよくあるミス

複数行コメントは便利だが、コメントの終了を表す「*/」を忘れてしまうと、本来プログラムとして実行したかった部分までコメントアウトされてしまう。

ページが真っ白で動かないという時には、まず複数行コメントをしっかり閉じているかどうか確認しよう。

まとめ

PHPのコメントアウトの方法をお伝えしたがいかがだっただろうか? プログラミング言語によらない、コメントの書き方やポイントについては下記のページで詳しく説明している。

]]>
https://eng-entrance.com/php-basic-comment/feed 0
【PHP入門者向け】echoによる出力方法まとめ https://eng-entrance.com/php-basic-echo https://eng-entrance.com/php-basic-echo#comments Tue, 12 Jul 2016 00:40:46 +0000 http://eng-entrance.com/?p=1638 PHPで文字列を出力するときには「echo」を使用する。

PHPで最も基本的な出力方法で、一番はじめに習うものの一つだろう。

このページではechoの使い方について詳細も含めてまとめている。初心者の方は参考にしてほしい。

echoで文字列を出力する

echoの基本

echoは1つ以上の文字列を出力する。下のように使い方はシンプルだ。

echo 文字列

複数の文字列を表示したい場合には、「,」で区切って書けばいい。

echo 文字列1, 文字列2・・・・

また、echoは関数的にも使える。

echo(文字列)

使えはするが、通常は括弧がない出力方法が使った方がいいだろう。

echo "Hello World!";
echo 'Hello World!';
echo("Hello World!");

これはechoに限らないが、分の区切りとして最後にセミコロン(;)を記述するのは忘れないようにしよう。

文字列の囲み方

echoに文字列を指定する場合はシングルクォーテーション(')またはダブルクオンテーション(")で囲む必要がある。

文字だけの場合はどちらを使っても構わないが、違いもある。次の通りだ。

変数を展開して表示する

変数を展開して表示したい場合には、ダブルクォーテーションを使う。例えば次の通りだ。

<?php

$a = "Hello";
echo "$a";

?>

出力結果は次のようになる。

Hello

変数も文字列として表示する

反対に、上記の「$a」という文字(変数の名前)をそのまま表示したい場合はダブルクォーテーションを使う。

<?php

$a = "Hello";
echo '$a';

?>

出力結果は次の通りだ。

$a

変数または定数しかないとき

変数または定数のみの場合はシングルクォーテーション(')またはダブルクォーテーション(")で囲む必要はない。

そのまま表示すればいい。

echo $a;

echoによる変数表示

変数を単体で表示させるには「echo $a;」とすれば表示させることができるが、文字列も一緒に出力させたい場合もある。

次のような例を考えてみたい。

$a = '入門';

echo "PHP$a";//①「PHP入門」と表示される

echo "$aPHP";//②変数$aPHPと認識されるので何も表示されない

①は期待通りの動作を行うが、②では何も表示されない。理由は簡単で「$aPHP」が、変数aPHPと認識されてしまっているからだ。

②を期待通り「入門PHP」と表示させたい場合は以下のようにする。

$a = '入門';

echo "{$a}PHP";//①「入門PHP」と表示される

echo $a."PHP";//②「入門PHPと表示される」 

①②ともに「入門PHP」と表示される。

波括弧 { } で変数を囲うことで区切りを作ることができる。①はそのようにして対処した例だ。

②は連結演算子ピリオド . を使用して変数aと文字列PHPを連結表示させている。「.」を使うと文字列をくっ付けることができる。

こちらの方が頻繁に見ると思うので覚えておいて欲しい。

まとめ

このページではechoによるPHP文字列の出力方法についてお伝えした。echoはPHPを扱う上で、なくてはならないものだ。

使いこなせるようになっておこう。

 

PS

PHP研修企業をまとめた記事を追加したのでご参考に

]]>
https://eng-entrance.com/php-basic-echo/feed 4
【PHP初心者向け】PHPの拡張子に関してのまとめ https://eng-entrance.com/php-basic-extension https://eng-entrance.com/php-basic-extension#respond Mon, 11 Jul 2016 06:58:47 +0000 http://eng-entrance.com/?p=1627 PHPの拡張子は「.php」だ。ただ、実は「.php」以外でも動く。

このページではPHPの基本となる.php拡張子と、.htmlや.phtmlといった拡張子でもPHPプログラムを動かす方法についてお伝えする。

PHP拡張子の表示

ファイル名の末尾には通常、拡張子と呼ばれる識別子が付いている。そのファイルがどんな種類のファイルであるかを示すための記号だ。例えば、「example.html」はhtmlという拡張子で、webページである事を示している。PHPプログラムの拡張子は「.php」だ。

普段はあまり気にしていないかもしれないが、プログラムを作成する上で重要になってくるため、拡張子が表示できているか確認してください。

では簡単なプログラムで試して見る。

php拡張子を使った場合

次のようにsample「.php」というファイルを作ってみる。

sample.php

<!DOCTYPE html >
<head>
  <meta charset="utf-8">
  <title>サンプル</title>
</head>
<body>
  <p>こんにちは。</p>
  <p>
  <?php
    echo "お元気ですか?";
  ?>
  </p>
</body>
</html>

上記のファイルを

  • httpサーバのドキュメントルート以下
  • XAMPPのhtdocs以下

のいずれかに設置する。

そうすると、ブラウザからアクセスすると次のように表示される。

apacheの様子

Webサーバはクライアントから要求されたファイルの拡張子に「.php」が付いていることからページ内にPHPプログラムが含まれていることを認識する。そしてPHPプログラムを処理した後の結果をクライアントへ返す。

実際にブラウザに表示されたページのソースを確認すると次のようになっている。ソースを表示するのは、右クリックして「ソースを表示」をクリックしよう。

php ソースコード

phpという部分がまったくなくなっているのがわかる。

PHPプログラム部分はもう処理されており、画面に出力される時点ではPHPのプログラムがどのように記述されていたかは分からなくなっている。

html拡張子を使った場合

続いてまったく同じファイルの拡張子を「.php」から「.html」に変更してみよう。拡張子の変更と言っても難しくはない。ファイルの名前を変更する方法とまったく同じだ。最後の「.php」の文字を「.html」に変更すればいいだけだ。

拡張子の変更

ファイルの中身はまったく同じままで拡張子を「.html」とした場合も試してみる。ブラウザからアクセスすると次のように表示される。

htmlの拡張子

今回は拡張子が「.html」となっているためPHPプログラムが含まれているページであるとWebサーバが認識していない。その為、PHPプログラム部分の処理は行われずそのままクライアントに送信されている。

実際にブラウザに表示されたWebページのソースを確認すると次のようになっている。

phpがコメントになっている

HTMLページ内に含まれているPHPのプログラムがサーバ側で処理されずそのままクライアントへ送信されてしまっていることが確認できる。

初心者の方は、まず知っておけば十分だ。この下はこういうこともできるんだ、というのを知っておくだけで十分だろう

htmlなど他の拡張子でもPHPは動く!

色々な事情で、php拡張子ではなくhtml拡張子でもPHPプログラムを動かしたい、ということがある。

例えばどんなとき?

例えば、あるサイトをPHPを使って便利にしたとしよう。予約フォームがついたとか、カレンダーがついたとか、なんでも構わない。

そのとき、.htmlだった拡張子を.phpに変えなければ行けなくなってしまう。こうすると、URLがすべて変わってしまうため、チラシに載せたサイトへアクセスするためのURLも、SEOに役立っていたリンクの効果などもなくなってしまう。

だから、html拡張子のままPHPを動かせればベストだ。

実施方法

Apacheの設定を変更する必要がある。

/etc/httpd/conf.d/php.conf

/etc/httpd.conf

などのファイルがあるはずだ。そこで下記のような記述がある。

AddHandler php5-script .php 

これを次のように変更すればいい ↓

AddHandler php5-script .php .html

phpで動く拡張子を登録している形になる。再起動すれば、設定完了だ。

簡単にお伝えだけしておくが、Apacheの詳細な説明はまた別のページで解説をしよう。

まとめ

このページでは、PHP拡張子についてお伝えしてきたが、ご理解いただけただろうか?

詳細に関してもご説明はしたが、基本的にPHPを使う時にはphp拡張子を使うことをオススメする。特に初心者の間は混乱を避けるために、デフォルトの設定を使おう。

]]>
https://eng-entrance.com/php-basic-extension/feed 0
【超初心者向け】PHPの基本的な書き方とは? https://eng-entrance.com/php-basic-code https://eng-entrance.com/php-basic-code#comments Mon, 11 Jul 2016 02:41:20 +0000 http://eng-entrance.com/?p=1612 PHPはWebアプリケーションを作るのに、最適な言語のひとつだ。

他の言語に比べて描きやすいため、初心者がはじめに学ぶプログラミング言語として人気も高い。

PHPプログラミングを書けるようになるために、まず必要な基本的な書き方をまとめたのがこのページだ。

PHPをはじめて勉強する方は参考にしてほしい。

PHPプログラミングの基本

まず、「PHPとは?」であったり「PHPって何ができるの?」という疑問をお持ちの方は下記のページを先に確認してほしい。

PHPの基本的な書き方

PHPは、Webサイトを作るHTMLという言語の中に書き込む。

だから、先にHTMLを知っておかなければいけないが、このページでは、それは知っているという前提で話を進める。

開始タグと終了タグ

まずは、PHPプログラムを書く場合に必要な「開始タグと終了タグ」についてご説明しよう。

PHPは開始タグ「 <?php」 からはじまり、終了タグ 「?>」 で終わる。開始タグと終了タグの間にPHPスクリプトのコード(命令文、プログラム)を記述する。

次のような記述になる。

<?php ここにコードを書く; ?>

改行は気にされないので、会ってもなくても。あった方がやりやすいので、基本的には「<?php」の後も、「?>」の前も改行する事が多い。

例えば次のような形だ。

<?php
  ここにコードを記述する。
?>

HTMLに入れると次のようになる。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PHPの基本的な書き方</title>
  </head>
  <body>
    <?php
      ここにコードを記述する。
    ?>
  </body>
</html>

例えば「Hello, World!」という文字列を出力するPHPスクリプトは以下のようになる。

echo "Hello, World!"

これをHTMLとPHPの中に入れてみる。

Hello Word! プログラム

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PHPの基本的な書き方</title>
  </head>
  <body>
    <?php
      echo "Hello, World!"
    ?>
  </body>
</html>

 

開始タグ「 <?php」と終了タグ「?>」に「コード」が挟まれていることがわかるだろう。

出力結果

今はわからずともいいが、出力結果は次のようになる。

Hello, World!

おいおい解説をしていく。

コードの最後にはセミコロン

PHPスクリプトのコードの最後にはセミコロン「;」を記述する。

<?php
echo "Hello, World!";
?>

これが区切り文字になる。「;」がなければ、プログラムが続いていると思われる。

例えば「Hello, World!」を2個並べるには次のようななる。

<?php
echo "Hello, World!";
echo "Hello, World!";
?>

これは下記でもOKだ。

<?php
echo "Hello, World!"; echo "Hello, World";
?>

コードの間は半角スペース/タブ/改行で区切る

サンプルコード

次のようなプログラムコードがあったとしよう。

<?php
echo "Hello,World!";(半角スペース)

echo     "Hello,World!";(タブ) 

echo
"Hello,World!";(改行)
?>

といった具合だ。

コードの最後にセミコロン「;」、命令の間を「半角スペース」「タブ」「改行」で区切れば、どのように記述しても構わない。

そのため上のどのPHPコードも同じように「Hello, World!」という文字列を出力する。

通常は?

通例、1行のコードが長くなった場合にスクリプトを読みやすくするために改行を入れるが、HTML内でPHPスクリプトを実行する場合などは、改行を入れずにスクリプトを記述する場合が多い。

PHPで開発されているブログシステムであるWordPressのテーマ内のコードなどは改行なしのコードがよく見られる。

これは主となるHTMLコードを読みやすくするためだ。

読みやすいスクリプトは、バグを防ぐことができるので、改行、インデント、コメントを適切に使って、読みやすいスクリプトを普段から心がける必要がある。

まとめ

PHPの基本中の基本についてお伝えしてきたがいかがだっただろうか?

ここまでは難しいと思う人はほとんどいないだろう。徐々に難易度が上がっていくのでなんとか付いていき、エンジニアの入り口までたどり着いてほしい。

]]>
https://eng-entrance.com/php-basic-code/feed 2