クロピグログ

職業訓練で学んだことまとめ

【PHP授業一日目】PHPの基本、変数

PHPの基本

XAMPP(ザンプ)とは

・開発環境で使うサーバ

●XAMPPインストール方法

https://jobtech.jp/php/3930/

 

X:OS(昔はOSによって名前変わってた)

A:Apache(Webサーバ)

M:MySQL/MariaDB

P:PHP

P:Perl

 

●今までのリクエストイメージ

f:id:chromiumpig:20200831104724p:plain

PHPをリクエス

f:id:chromiumpig:20200831104745p:plain

 

●XAMPP設定方法

https://jobtech.jp/php/3946/

 

●XAMPP起動と終了

https://jobtech.jp/php/3964/

 

●ブラウザでURL「localhost」と打つと表示されるとサーバ立ち上がってる

 

●下のような記述でPHPのファイル開く

http://localhost/sample/01/01_test.php

 

PHP記述法

<?php echo 'こちらはPHPです。';?>

・<?php  ここにPHP記述    ?> 

  <?php
  echo 2000;
  echo 5000;
  ?>

・複数書くときは上記のようにする

 

PHPはJSと違い、「;」セミコロン忘れるとエラーでる(設定したから)

・エラー番号は当てにならない、その付近で「;」忘れある

 

●文字列として出力する方法2パターン

echo 文字列として出力したい値  ;

print 文字列として出力したい値  ;

 

エスケープシーケンス

特殊な文字やPHPで意味のある記号を文字列として扱う場合

・「”」ダブルクォーテーションで囲まれた文字列で使用

・「\'」「\\」のみシングルクォーテーション内で使用可能

「I'm a programmer.」という文字を出力するとき↓

I\'m a programmer. '

I'm a programmer. "

 

 変数

 ●$変数名=初期値;

  $movie = "アイアンマン";
  echo $movie;

 ●代入

  $movie = "アイアンマン";
  $movie = "キャプテンアメリカ";
  echo $movie; キャプテンアメリカ表示される

●エラー

Notice: Undefined variable

未定義状態

 

●変数展開

<?php
$name = '田中';
$today = '2019/5/26';
$text1 = $today に $name はプログラムを勉強しています。";
$text2 = "{$today}に{$name}はプログラムを勉強しています。";
$text3 = '{$today}に{$name}はプログラムを勉強しています。';
$text4 = "$todayに$nameはプログラムを勉強しています。";
?>
<body>
  <h1>変数展開</h1>
  <p><?php echo $text1?></p> ※1
<p><?php echo $text2?></p> ※2
  <p><?php echo $text3?></p> ※3
  <p><?php echo $text4?></p> ※4
</body>

※1:2019/5/26 に 田中 はプログラムを勉強しています。

・{}で囲んでないので、半角スペース入る

※2:2019/5/26に田中はプログラムを勉強しています。

・「"」で囲んだ文字列は変数展開が行われる

・変数名を明確にするため{}が使われる

※3:{$today}に{$name}はプログラムを勉強しています。

・「'」で囲んだ文字列は変数展開が行われない

 ※4:Notice: Undefined variable

・Noticeエラー:変数名を{}で囲まないと変数名の区切りが明確にならないためエラーが起こりやすい

 

●ロジカルな処理はファイル上部でおこない、出力で必要な値を変数に代入しておく

●HTMLのbody内では変数出力のみ記述して文章構造とロジックを分離する

●「’」シングルクォートで囲むほうは変数展開の確認をしないので処理速度は速い

 

 

$today = date('Y/m/d');

・右辺:date関数(処理)の呼び出し
・日付に関する処理の呼び出し
・第1引数に日付の書式をもった文字列を指定
 Y:4桁の年
 m:2桁の月
 d:2桁の日
・戻り値は引数で指定した書式に日時をあてはめた文字
・2020年8月31日に関数を呼び出した場合は戻り値:2020/08/31

 

●date関数説明(PHP公式)

https://www.php.net/manual/ja/function.date.php

豆知識:PHP6は市場にでていない。スマホがでてきたせいで開発側でいろいろあってPHP6はだせなかったらしい...

 

●ヒアドキュメント

$変数 = <<< 終端 ID

終端 ID ;

$text = <<< EOD ヒアドキュメント開始
「<<<」の後ろで終端IDを指定し、\n
その終端IDが行頭に出てくるまでを文字列として扱います。\n
この"ヒアドキュメント"の中では'シングルクォート'や"ダブルクォート"を
エスケープする必要がありません。<br>
投稿者:{$name}<br>
投稿日:{$today}
EOD; ヒアドキュメント終了

・「\n」なくてもヒアドキュメント内で改行するとHTMLソースコード内で「改行文字」が挿入される

・長い文章を扱うのが得意なので、長めのHTMLコードやメール本文や処理完了メッセージなどに使用することが多い

・終盤IDの前後に余計な記述を入れるとエラーになるので注意(<<<終端IDのあとにコメントアウトした文字すらダメ)

 

●nl2br関数

$grenge = <<< EOD
強くなれる理由を知った
僕を連れて進め
泥だらけの走馬灯に酔う
こわばる心震える手は掴みたいものがある
それだけさ夜の匂いに空睨んでも
変わっていけるのは自分自身だけ
EOD;
<body>
 <p><?php echo nl2br($wind); ?></p>
</body>

・nl2br関数:new line to br関数

・引数で渡した文字列の改行文字部分に<br>タブを自動で追加してくれる関数

・ヒアドキュメントと組み合わせると便利

 

PHPコメントアウトは検証ツールのソースコードに移らない

 

●「© 2020 会社名.」表示させる

  <p class="copyright">
    &copy;
    <?phpecho date('Y');?>
    会社名.
  </p>