0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PHPの変数、定数について

Last updated at Posted at 2022-07-24

自己紹介

はじめまして、日本システム開発株式会社の藤井といいます。
業務でPHPを触ることが多く、勉強してみようと思ってドキュメントを読み、役立ちそうな内容を記事にまとめています。
記事の内容は大体php.netに書いてありますが、ドキュメントを読むのが面倒くさいと思った方は、
ぜひこの記事を役立ててください。

変数について

概要

変数とは値を格納する箱のことです。ドル記号の後ろに変数名が続く形式で記述し、値を代入して使用します。
基本的に、いつでも値を取り出したり、変更したりすることができます。

変数名のルールは以下の2つです。

  • 大文字小文字を区別します。
  • 文字またはアンダースコアから始まり、任意の数の文字、数値、アンダースコアが続きます。

変数の利用

$variable = 'variable';

変数のスコープ

スコープとは範囲のことです。スコープは2種類あり、グローバルスコープとローカルスコープです。
以下のコードを例を用いて説明します。

<?php
// グローバルスコープ
$a = 'a'; //グローバル変数

function abc()
{
    // ローカルスコープ
    $a = 'b'; // ローカル変数
}

abc();
echo $a; // a
?>

ローカル変数は、abc()が実行されている間のみ存在します。
そのため、ローカルスコープからグローバル変数へはアクセスできますが、
グルーバルスコープからローカル変数へはアクセスできません。

ローカルスコープからグローバル変数へアクセスするには、globalキーワードを用います。
globalキーワードを用いることで、対象の変数がローカル変数なのか、グローバル変数なのかを区別することができます。

<?php
// グローバルスコープ
$a = 'a';

function abc()
{
    // ローカルスコープ
    global $a; // グローバル変数a
    $a = 'b';
}

abc();
echo $a; // b
?>

可変変数

一言で説明すると、変数名、プロパティ名を可変にできる機能です。ドル記号を複数続けて記述します。
以下、コード例を用いて説明します。

$a = "hello";
$$a = "world";

上のコードで、aとhelloの2つの変数が定義されます。
$a"hello"なので、$$a$helloと同じ意味になります。

プロパティの場合

$foo = new StdClass();
$foo->bar = "It's bar";
$foo->buzz = "It's buzz";

$b = "bar";
echo $foo->$b; // It's bar

定数について

概要

値に名前つける機能です。定数の値はスクリプト実行中に変更できません。
定数は大文字小文字を区別しますが、慣習的に大文字のみで表記します。

定数の定義には、define関数かconstキーワードを使用します。

define("DEFINE_CONSTANT", "constant");
const CONSTANT = "constant";

定数は、スコープに関係なく、あらゆる場所からアクセス可能です。
また、スカラー値と配列のみ格納できます。

定義済みの定数とマジック定数

PHPには、スクリプト内で利用可能な多くの定義済み定数が存在します。
よく利用される例として、PHP_EOLがあります。

マジック定数とは、使われる場所によって値が変化する定数です。全部で9つあります。
利用例として、ClassName::classがあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?