PHPでデータ型をキャストする方法を解説【初心者向け】

初心者向けにPHPでデータ型をキャストする方法について解説しています。PHPなどのスクリプト言語では型を指定しなければいけないわけではないのですが、データや値には型があります。文字列型や数値型などをキャストする方法について学びましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPでデータ型をキャストする方法について解説します。

 

なお本記事は、TechAcademyのPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPでデータ型をキャストする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

データ型とは

PHPは動的型付け言語ですのであまり意識することはありませんが、データには型が存在します。

var_dump( )関数を使うとPHP内部で認識している型の情報が表示されますので見覚えがあるかもしれません。

整数を扱う int型(integer型)
実数を扱う double型 (float型、real型)
文字列を扱う string型
論理値を扱う bool型(boolean 型)
配列を扱う array型
オブジェクトを扱う object型
null値のみの null型

 

他にもいくつかありますがキャストで利用するのはこのくらいです。

 

データをキャストする方法

キャストとはデータ型の形式を別の方に変換することです。型の種類によって、キャストが不可能であったり、情報が欠落する場合があります。

それでは、いくつかの例を見てみましょう。

 

暗黙の型変換

$num = ‘123’ + 45; // 四則演算子を使うと整数や実数の数値型に変換します。’123′ は数値の 123 へ変換します。
$str = ‘123’ . 45; // 連結演算子を使うと string 型に変換します。45 は ’45’ へ変換します。
$bool = true && 0; // 論理演算子を使うと bool 型に変換します。0 は false へ変換します。

 

明示的な型変換

型の名前をカッコで括って値の前に置くことでキャストします。
$str = (string)123;

※明示的なキャストでは連想配列と stdClass の object を相互変換可能です。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

<?php
error_reporting(E_ALL & ~E_NOTICE); // 暗黙の型変換は Notice メッセージが出るので抑止する
$quantity = '3 個';
$price = '100 円';
$total = $quantity * $price;
var_dump($quantity, $price, $total);

$array = [
    'name'=>'taro',
    'age'=>25
];
$object = (object)$array;   //連想配列から stdClass の object へのキャスト。

var_dump($array, $object);
echo $object->name, PHP_EOL;

 

実行結果

string(5) "3 個"
string(7) "100 円"
int(300)
array(2) {
  ["name"]=>
  string(4) "taro"
  ["age"]=>
  int(25)
}
object(stdClass)#1 (2) {
  ["name"]=>
  string(4) "taro"
  ["age"]=>
  int(25)
}
taro

 

この記事を監修してくれた方

大網 清和(おおあみきよかず )
現在は派遣スタッフとして Laravel で大手ポータルサイトの開発業務をしています。

プログラム歴は長く中学生の頃から始めて35年くらいになります。古くは BASIC、C、COBOLなどを経験し SQL を集中的に使っていた時期もあります。
Web の開発はまだ2年位とあまり長くは無いですが、プログラミングの楽しさを伝えられたら良いなと思っています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。