ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

PHP 学習 part. 1

PHP

ハイパーテキストな処理を行いたいので PHP を勉強します?JavaScript の勉強がひと段落ついたので、今回は PHP に手を出してみようと思います。ゆくゆくは、WordPress のサイトで使えるような何かを作りたいですね。

XAMPP で複数のホストを扱う

既に XAMPP でローカル環境で PHP を使っていたので、新たに環境を増やしました。

XAMPPで複数のサイトのテストサーバーを作ってみました(バーチャルホスト)

今考えると、Brackets で環境作った方が良かったのかもしれないですね。PHP の環境設定めんどくさい!

PHP の基礎

ハローPHP

HTML ファイルに直接 PHP のコードを埋め込むことができる点は JavaScript と同じですね。クライアント側とサーバー側で処理されるのが違いですね。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>ハローPHP</title>
</head>

<body>
  <p><?php echo "Hello, PHP"; ?></p>
</body>

</html>

var_dump()

変数の型や値を出力することができる var_dump() 関数があります。型情報が取得したいときに使用します。

<?php

$a = 1;
$s = 'hello';
$ary = array(0, 1, 2);

var_dump($a);
var_dump($s);
var_dump($ary);

可変変数

格納された文字列を変数の識別子とみなし、その変数にアクセスすることができます。

<?php
$var = 1;
$var_name = 'var';
echo $$var_name; // 1

変数のスコープ

ブロック

PHP ではブロックの中はグルーバルスコープとされ、ブロックスコープはないので、制御構造内で定義された変数はブロックを抜けた後でも使うことができます。

この点において JavaScript と似ていると思います。

<?php
$ary = array('apple', 'orange', 'grape');
foreach ($ary as $s) {
  echo $s, PHP_EOL;
}

echo $s; // grape
グローバルキーワード

ローカルスコープからグローバルスコープで定義された変数を参照したい場合、グローバルキーワードを使います。

<?php
$i = 8;

function add_var(): void 
{
  global $i;
  $i++;
  echo $i;
}

add_var(); // 9

GET

url の後ろに "?name=〇〇" とすると、"〇〇" と表示されます。これは、HTTP GET アクセスにより指定されたURLパラメータの値を "_GET" という連想配列で保持しているためです。

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>GET</title>
</head>

<body>
  <?php echo htmlspecialchars($_GET['name'], ENT_QUOTES); ?>
</body>

</html>

定数

PHPの定数について - Qiita

define() による定数の定義
define('FOOD', 'APPLE');
echo FOOD; // APPLE
const による定数の定義
const ANIMAL = 'Cat';
echo ANIMAL;

constant() メソッド

文字列から定数を取得するときに constant() 関数を使います。

<?php

define('APPLE', 'りんご');

$var = 'APPLE';

echo constant($var), PHP_EOL; // りんご
echo $var, PHP_EOL; // APPLE

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

感想

Web に関する技術として PHP を勉強してサイト作りに活かせたら良いと思います。