PHPKonf 2020 Online

はじめに

PHP は 10 種類の基本型をサポートします。

4 種類のスカラー型:

  • 論理値 (bool)
  • 整数 (int)
  • 浮動小数点数 (float, double も同じ)
  • 文字列 (string)

4 種類の複合型:

そして、最後に 2 種類の特別な型:

  • リソース (resource)
  • ヌル (NULL)

マニュアル内のいくつかの場所で "double" 型という記述が残っているかもしれません。 double は float と同じものだと考えてください。2 種類の名前が存在するのは、 歴史的な理由によるものです。

変数の型は、基本的にプログラマが設定するものではありません。 その変数が使用される文脈に応じ、PHP が実行時に決定します。

注意: の型と値を正確に知りたい場合は、 var_dump() 関数を使用してください。

デバッグのために、単純に人間が読みやすい形で型を表示したい場合には gettype() を使用してください。型をチェックする場合には gettype() を使用してはいけません is_type 関数を使用してください。いくつかの例を以下に示します。

<?php
$a_bool 
TRUE;   // a boolean
$a_str  "foo";  // a string
$a_str2 'foo';  // a string
$an_int 12;     // an integer

echo gettype($a_bool); // prints out:  boolean
echo gettype($a_str);  // prints out:  string

// 数値であれば、4を足す
if (is_int($an_int)) {
    
$an_int += 4;
}

// $a_bool が文字列であれば, それをprintする
// (そうでなければ何も出力されない)
if (is_string($a_bool)) {
    echo 
"String: $a_bool";
}
?>

ある変数の型を強制的に他の型に変換したい場合、変数を キャスト するか、 settype() 関数を使用します。

変数は、その型に依存して異なった動作をする場合があることに注意してください。 詳細な情報については、 型の変換 のセクションを参照ください。 またPHP 型の比較表 もご覧ください。さまざまな型の変数の比較に関する例があります。

add a note add a note

User Contributed Notes 1 note

up
0
kuzawinski dot marcin_NOSPAM at gmail dot com
4 months ago
No, despite description here a `callable` still is not a a full-fledged primitive type in PHP.

<?php

function testFunc() { }

class
testClass {
   
    public function
__invole() { }
   
    public static function
testStaticMethod() { }
   
    public function
testMethod() { }
}

$o = new testClass();
$lambda = function() { };

$c1 = 'testFunc';
$c2 = ['testClass', 'testStaticMethod'];
$c3 = [$o, 'testMethod'];
$c4 = $lambda;
$c5 = $o;

var_dump(is_callable($c1));  // TRUE
var_dump(is_callable($c2));  // TRUE
var_dump(is_callable($c3));  // TRUE
var_dump(is_callable($c4));  // TRUE
var_dump(is_callable($c5));  // TRUE

var_dump(gettype($c1)); // string(6) "string"
var_dump(gettype($c2)); // string(5) "array"
var_dump(gettype($c3)); // string(5) "array"
var_dump(gettype($c4)); // string(6) "object"
var_dump(gettype($c5)); // string(6) "object"

?>
To Top