本記事では、PHPでCookieの追加・取得・更新する方法について解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!
Cookie情報を確認
以降の解説では、サンプルコードを用いて追加・取得・更新されたCookie情報を確認します。Cookie情報を確認する方法が分からない方は、下記の手順をご参考ください。

- ブラウザで右クリック→検証クリックで検証ツールを開く
- アプリケーションタブを開く
- Cookieを選択し、該当のURLをクリック
Cookieを追加
Cookieを新規追加する方法は以下のとおりです。
<?php
setcookie('$name', $value);
?>
setcookieの第一引数($name)にCookieの名前を設定し、第二引数($value)に値を設定します。
実際に下記のコードを実行させ、Cookieを新規追加してみましょう。
<?php
setcookie('COUNT', 1);
?>

Cookie情報を確認すると、名前に「COUNT」値に「1」がセットされているCookieが見つかりました。
Cookieの値を取得
Cookieの値を取得する方法は以下のとおりです。
<?php
$_COOKIE['key']
?>
Cookieの値を取得するには、$_COOKIE[‘key’]を使用します。情報は連想配列でセットされているため、key情報にはCookieに登録した名前を使用します。
実際に下記のコードを実行させ、Cookieの値を取得してみましょう。
<?php
setcookie('COUNT', 1);
print_r("Cookieにセットされた値は${_COOKIE['COUNT']}です。");
?>

Cookieにセットされている値の「1」が取得できていることが確認出来ました。
Cookieの値を更新
Cookieの値を更新する方法は以下のとおりです。
<?php
setcookie('$name', $value);
?>
Cookieの新規追加と同様にsetcookieを使用します。
実際に下記のコードを実行させ、Cookieの値を更新してみましょう。
<?php
setcookie('COUNT', 1);
setcookie('COUNT', 10);
?>

値が初期設定の1ではなく、後に更新した10に変更されていることが確認出来ました。
NGな更新方法
Cookieの値がセットされている連想配列に直接更新をするのはNGです。連想配列の値は更新されてもCookieには反映がされません。
<?php
$_COOKIE['key'] = $value;
?>