オーダーメイドコース
icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

 

そもそもPHPについてよく分からないという方は、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を学んで未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

<?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を使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。