定義済みの定数
PHPの定数は自分で定義するばかりではなく、最初から用意された(定義済みの)定数が用意されている。
定義済みの定数はconst/defineで宣言することなく無条件に利用できる。
主な定義済み定数
定数 | 概要 |
---|---|
__FILE__ | 実行中のファイル名(絶対パス) |
__DIR__ | 実行中のファイルが存在するフォルダ |
__LINE__ | 実行中の行番号 |
__FUNCTION__ | 実行中の関数名 |
__CLASS__ | 実行中のクラス名(所属する名前空間を含む) |
__METHOD__ | 実行中のメソッド名 |
__TRAIT__ | 実行中のトレイト名(所属する名前空間を含む) |
__NAMESPACE__ | 現在の名前空間 |
DIRECTORY_SEPARATOR | フォルダの区切り文字(Windows環境では「¥」、Mac OS環境では「/」) |
PATH_SEPARATOR | パスの区切り文字(Windows環境では「;」、Mac OS環境では「:」) |
PHP_VERSION | 使用しているPHPのバージョン |
アンダースコアが前後に2つずつ連なっている定数もある為注意。
データ型
データ型とはデータの種類のこと。
たとえば「abc」や「いろは」は文字列型、1や10は数値型、true(真)やfalse(偽)は真偽型に分類できる。
PHPは動的型付け言語と呼ばれ、データ型に対して寛容で、最初に文字列を格納した変数に後から数値をセットしても良いし、その逆も可能。
変数(入れ物)の方が中身に応じて自動的に形を変えてくれる。
そのため次のスクリプトもPHPでは正しいコード。
$data = ‘今休憩中です。コーヒー飲みながらこの勉強をしております。’;
$data = 20220215;
(文字列が代入された変数に数値を代入)
ただし、開発者がデータ型を全く意識しなくて良いわけではない。
このあと、値を演算/比較する場面では、データ型によって挙動が変化するし、そもそもデータ型によって出来ることも変化する。
値の扱いが緩いというだけで、PHPでも型の理解は欠かせない。
PHPで扱える主なデータ型
スカラー型
論理型(book)
true(真)またはfalse(偽)
整数型
10進数、16進数(0xで始まる値)、8進数(0で始まる値)など。
浮動小数点型(float、double」
1.8×10の308乗が最大値(ただしプラットフォームに依存)
文字列型(string)
クォートで囲まれた0個以上の文字の集合。
複合型
配列型(array)
データの集合。
オブジェクト型(object)
データと手続きの集合。
コールバック型(callable)
一連の処理(手続き)の集合。
特殊型
リソース型(resource)
外部リソースへの参照。
ヌル型(null)
値が未定義であることを表す。
スカラー型とは、1つの変数(入れ物)で1つの値だけを扱う事ができるものを言う。
データ型の中で最も基本的なものである。
スカラー型と対照的なものが複合型で、この型は1つの変数で複数の値をまとめて扱える。
そして特殊型は、スカラー型/複合型のいずれにも分類できない特殊な値を表す型のこと。
また、これから出てくるリテラルとは、変数に格納できる値そのもの、または値をスクリプトの中で表現する方法のことを言う。
論理リテラル(bool)
論理型は、スカラー型の中でも最も単純な型で、真(正しい)か偽(間違い)のいずれかしか持たない。
それぞれtrue(真)、false(偽)と言うキーワードで表現できる。
大文字小文字は区別しないので書き方は自由。
なお、PHPでは、論理リテラルを必要とする状況で、次の値を自動的にfalseとみなす。
①空文字列、または文字列の0(ゼロ)
②整数リテラルの0、-0(ゼロ)
③浮動小数点数リテラルの0.0、-0.0(ゼロ)
④null(未定義値)
コードを書いていく中でこの性質を利用することはよくあるので、まずは「falseキーワードだけがfalseを表すわけではない」と言うことを覚えておく。
ここに表示したもの以外の値は全てtrueであるとみなされる。
整数リテラル(int)
整数リテラルは次のように分類できる。
整数リテラル | |
---|---|
10進数リテラル | 0, 3, -12 |
2進数リテラル | 0b1111, 0b101 |
8進数リテラル | 0777, 0644, 0600 |
16進数リテラル | 0xFF, 0xAA00BB |
10進数リテラルは私たちが日常的に使っている最も一般的な再数の表現で、正数(10, +108)、負数(-1, -15)、ゼロ(0)を表現できる。
負数を表現するにはリテラルの頭にマイナス(-)符号をつける。
16進数は0〜9に加えてa〜f(A〜F)のアルファベット10〜15を表し、接頭辞には「0x」を付与する。
8進数は0〜7で値そのものを表し、接頭辞として「0」を付与する。
2進数は0/1で数値を表し、接頭辞は「0b」。
「x」は「heXabecimal」(16進数)
「b」は「Binary」(2進数)
の意味。
こちらも大文字小文字は区別しないのでそれぞれ「X」「B」でも良い。
いずれも利用できない数値を含んだ値—-2進数であれば「0b120」のような値—-はエラーとなる。
その6は浮動小数点数リテラルから