PHPの環境構築と決まり事について学ぶ
学んだこと
環境構築
- 今回は MAMP を使って、PHP を実行できる環境構築を行う。
- MAMP は Web 開発で必要なソフトをまとめたパッケージソフト。
環境構築時に躓いたところ
躓いたところ
- MAMP のドキュメントルート内で新しくフォルダを作成し、その中に echo するだけの PHP ファイルを作成した。
- その後 PHP ファイルの実行結果を確認すべく、ブラウザ内で
http://localhost:ポート番号
でアクセスした。 - 結果、
The virtual host was set up successfully.
だけでドキュメントルート内のフォルダ一覧が表示されなかった。
解決方法
http://localhost:ポート番号/フォルダ名/
でフォルダにアクセスすることができた。
echo で画面に文章を表示
- echo は画面を表示するために必要なもの。
echo '文字列'
で記述する。
- printf や print と同じ働きを持つ。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample01</title>
</head>
<body>
<?php
echo 'PHPを勉強中です';
?>
</body>
</html>
PHP の決まり
<?php 処理 ?>
のように<?
と?>
で処理を囲わなければいけない。- 処理の終わりにはセミコロンを打他なければいけない。
- ファイルの拡張子は.php にしなければいけない。
エスケープシーケンス
- 以下のコードはエラーが発生している。
- 原因としては、echo の後にある文字列の終わりがどこなのか判断できないため。
- 解決策としては以下の通り
echo "I'mstudying"
としダブルコーテーションで囲むecho I\'m stydying
としエスケープシーケンスを挟む
- 解決策としては以下の通り
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample01</title>
</head>
<body>
<?php
echo 'I'm studying';
?>
</body>
</html>
エラー表示方法
エラー表示するための設定ファイルの探し方
http://localhost:ポート番号/MAMP/
内にある TOOLS をクリックし、PHPINFO を選択- ページ遷移後、
Loaded Configuration File
に書かれているのが設定ファイルになる。
設定ファイルの編集箇所
display_errors
を On に変更
PHP での計算
- 一般的な
+ - * /
で計算を行う事が可能。 - コーテーションやダブルコーテーションにて計算している箇所を囲ってしまうと、文字列判定になるため注意。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample01</title>
</head>
<body>
<?php
echo 123 + 2 * 5 / 3;
?>
</body>
</html>
現在時刻の表示方法
- date を使うと、時刻の表示ができる。
- date で何を表示するかで渡す文字が異なる。
- 下記の処理では
(例)12時12分12秒
と表示される。 - 時刻の何を表示させたいかは PHP のリファレンスを確認すると良い。
- https://www.php.net/manual/ja/function.date.php
- しかし、date で表示するのは世界標準の時刻しか表示することができない。
- そのため、
date_default_timezone_set('Asia/Tokyo')
にて日本の標準時刻を設定し、date を呼び出す。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample01</title>
</head>
<body>
<?php
date_default_timezone_set('Asia/Tokyo');
echo date('G時 i分 s秒')
?>
</body>
</html>