カテゴリー別アーカイブ: PHP入門

8.PHP入門 Session

ここではPHP、Sessionの操作を解説していきます。

php

Sessionの操作

<?php

    session_start();
    $_SESSION['key'] = 9999;
    echo $_SESSION['key'];

解説

Sessionを利用する場合は必ず「session_start();」をコールしてください。

SessionはCookieとは違い4Kバイト以上のデータも保持することができ、又、httpヘッダとして返信されるものではないので、機密情報の保持に適しています。
しかし生のパスワードを保存するのは避けましょう。

Sessionの登録、参照には「$_SESSION[‘key’]」をそのまま利用できます。

一度Sessionにセットしたデータは「session_start();」をコールすれば削除しない限り、どのファイルからでも参照できます。

Sessionの有効期限

<?php
    
    ini_set('session.gc_maxlifetime', 600);
    session_start();

解説

phpで変更する場合
Sessionの有効期限はデフォルトで「1440(24分)」に設定されています。
有効期限を変更する場合、「session.gc_maxlifetime」の値を書き換えます、例では「600(60秒x10分)」で10分に設定しています。

.htaccessで変更する場合

php_value session.gc_maxlifetime 600

Sessionの削除

<?php

    unset($_SESSION['key']);
    $_SESSION['key'] = '';
    $_SESSION['key'] = array();
    $_SESSION['key'] = null;

解説

Sessionを削除する場合は「unset();」関数や空の文字列、空の配列、nullを指定することで削除できます。

7.PHP入門 Cookie

ここではPHP、Cookieの操作を解説していきます。

php

Cookieの操作

<?php
    
    setcookie('id', 1,  time() + 5*60*60*24);
    echo $_COOKIE['id'];
    setcookie('id', '');

解説

3行目 Cookieの保存
Cookieの保存には「setcookie(キー, 値, 有効期限, 有効範囲);」を指定します。

有効期限は省略することができ、省略した場合ユーザーがブラウザを閉じたときにCookieが削除されます。

有効範囲は省略することができ、省略した場合Cookieがセットされたディレクトリとサブディレクトリで有効になります。

4行目 Cookieの参照
Cookieの値を参照する場合「$_COOKIE[‘キー’]」で参照することができます。

5行目 Cookieの削除
setcookieに空の文字列を渡す事でCookieを削除できます。

注意

Cookieはhttp通信のヘッダで値を保存するのでPHPでHTML本文を出力した後ではCookieに値を保存することはできません。

Cookieの値は簡単にユーザーが変更することが可能なのでセキュリティー面で生のパスワードの保存などにはお勧めできません。

Cookieは最大で4Kバイトのデータしか保存できないため4Kバイトを超える保存にはSessionを利用してください。

6.PHP入門 関数

ここではPHP、関数の定義を解説していきます。

php

関数の定義

<?php

    $num = getNum();
    echo $num;

    function getNum() {
        return 1;
    }

解説

関数はこのように「function 関数名(){}」と定義します。

定義された関数は、ソースコードの前後どこに記述しても「関数名();」で呼び出すことができます。

この例では「return 1;」と定義していますので、「getNum();」は「1」を返し出力結果は「1」となります。

よく使用する処理がある場合関数としてまとめておけば、バグがあった際一箇所だけ直す事ができ、
同じソースを何回も記述しなくてもよくなり、ソースコードが見やすくなります。

関数に引数を渡す

<?php

    $num = getNum(1, 2);
    echo $num;

    function getNum($a, $b) {
        $val = $a + $b;
        return $val;
    }

解説

関数に引数を持たせる場合「getNum($a, $b) {}」と定義します。

こうすることで「$a」には「1」が、「$b」には「2」が入り計算され出力結果は「3」となります。

関数の定義時に引数の初期値を持たせる

<?php

    $num = getNum(1, 2, 3);
    echo $num;

    $num = getNum(1, 2);
    echo $num;

    function getNum($a, $b, $c = 0) {
        return $a + $b + $c;
    }

解説

関数の定義時に引数の初期値を持たせる場合「getNum($a, $b, $c = 初期値) {}」と定義します。

こうすることで関数呼び出しの際、引数が2つだった場合「$c」には初期値が使用され6行目の出力結果は「3」となります。

2行目のように引数を3つ渡した場合は「$c」に「3」が代入され出力結果は「6」となります。

関数に初期値を設定する場合は必ず引数の最後に初期値を設定してください。
又関数の初期値は最後であれば複数定義できます。

5.PHP入門 配列操作

ここではPHP、配列操作を解説していきます。

php

配列の初期化

<?php

    $foo = array();
    $bar = array(1,2,3,4,5);
    $baz[] = 1;
    $baz[] = 2;
    $baz[] = 3;

    foreach ($bar as $val) {
        echo "{$val}、";
    }

    foreach ($baz as $val) {
        echo "{$val}、";
    }

解説

$foo = array(); (3行目)
空の配列の宣言、$fooは配列であると宣言します。

$bar = array(1,2,3,4,5); (4行目)
配列の宣言、この例では配列の宣言と初期化を同時に行っています。

$baz[] = 1; (5~7行目)
配列の宣言、この例では$bazという配列に順番に代入しています。

foreach ($bar as $val) {} (9行目)
配列分だけループさせます。7行目のforeachの出力結果は「1、2、3、4、5、」となります。

foreach ($baz as $val) {} (13行目)
配列分だけループさせます。10行目のforeachの出力結果は「1、2、3、」となります。

連想配列

<?php

    $foo = array('key1' => 1, 'key2' => 2);
    $bar['key1'] = 1;
    $bar['key2'] = 2;
    $bar['key3'] = 3;

    foreach ($foo as $key => $val) {
        echo "key:{$key} val:{$val}";
    }

    foreach ($bar as $key => $val) {
        echo "key:{$key} val:{$val}";
    }

解説

$foo = array(‘key1’ => 1, ‘key2’ => 2); (3行目)
連想配列の宣言、配列のキーと値を同時に宣言しています。

$bar[‘key1’] = 1; (4~6行目)
連想配列の宣言、配列のキーと値を順番に宣言しています。

foreach ($foo as $key => $val) {} (8行目)
連想配列の場合「$key => $val」とすることでキーと値を表示させることができます。

4.PHP入門 繰り返し

ここではPHP、繰り返しを解説していきます。

php

while文で繰り返し

<?php

    $i = 0;

    while ($i < 10) {
        echo "{$i}、";
        $i++;
    }

解説

while文は条件式のみを定義します。
式がtrueなら繰り返されますので、表示結果は「0、1、2、3、4、5、6、7、8、9、」になります。

for文で繰り返し

<?php

    for ($i = 0; $i < 10; $i++) {
        echo "{$i}、";
    }

解説

for文では変数の初期化、条件式、変数の増分指定を決めてループさせます。

この例では変数の初期値を「0」に設定し、ループする条件式に変数$iが10より小さい場合$iを1ずつ増やしてループさせています。

表示結果は「0、1、2、3、4、5、6、7、8、9、」になります。

for文の応用

<?php

    $i = 10;

    for ($i; $i > 0; $i--) {
        echo "{$i}、";
    }

解説

このように変数の初期化がいらない場合変数を指定してしまえば指定した変数を基準としてループさせることができます。

表示結果は「10、9、8、7、6、5、4、3、2、1、」になります。