【PHP初心者向け】「文字列型(string)」と「キャスト演算(cast)」とは?基本を正しく理解しよう

プログラミング

HTML/CSSである程度のサイトが作れるようになって、「さぁこれで念願のWebアプリの制作にすすめる!」と思っているようなひとには、次に身につける言語はPHPにしようと決めている方も多いと思います。

PHPはWebアプリ開発に特化した言語としてエンジニアにも需要が高く、初心者が身につけるスキルとしてもとてもオススメされています。

そこで、今回はPHPのスキルを身につけるにあたり必要な基礎段階として、“データ型“キャスト演算”などについて理解を深めていけるような内容をご紹介します。

PHPの基本「文字列型(string)」と「キャスト演算(cast)」について理解しよう

まずは、「そもそもデータ型とは何か?」という部分と、データ型の変換についての概念について説明していきます。

データ型とは?

PHPという言語は、HTMLを書き換えてくれるという役割を持っています。
その際、データベースにアクセスしてデータを書き換えるわけです。
データベースを管理する上で、いくつも存在するのがデータ型というもので、それをキャストするというのが特徴です。

キャストとは?

“キャスト=型変換”と覚えましょう。

そして、“演算はある値から違う値を導き出すもの”です。
「演算子」という記号を使うのですが、身近なところでいうと「四則演算」などが一般的に有名ではないでしょうか。
「足し算」「引算」「掛け算」「割り算」という計算式で、ある値から違う値を導き出していますよね。

キャスト演算は単項演算なので、ひとつの値からひとつの値を導き出すというものになります

PHPの基本「文字列型(string)」と「キャスト演算(cast)」の使い方

では、データをキャストする方法について詳しく説明します。

まず、キャストとはデータ型を別の型に変換することでしたね。
型変換というのは、私たちの日常にも身近に存在しています。
例えば、「cm(センチメートル)」を「mm(ミリメートル)」で表したり、「$(ドル)」を「円」で表したりすることも型変換=キャストといいます。

キャスト演算を使うことにより、他のデータ型へ値を変換することができます。

キャストで利用するデータ型の中に、「文字列型(string)」の情報があり、例えば「整数型(int型)」をキャストすることにより、「文字列型(string)に変換することなどが可能です。

キャスト一覧

PHPで変換を指定できるキャストを以下に記載します。

(bool), (boolean)「論理値」へキャスト
(int), (intval)「整数」へキャスト
(float), (double), (real)「浮動小数点数」へキャスト
(string)「文字列」へキャスト
(array)「配列」へキャスト
(object)「オブジェクト」へキャスト
(unset)「ヌル値」へキャスト

でも、そもそもなぜ変換する必要があるの?

PHPは情報量が多く、且つ初心者にもおすすめの言語として知られています。なので、正しく使えれば便利な機能が備わっているのですが、挙動が直感的ではない場合があるので注意が必要です。

基本、PHPは文字列のデータ型でも中身が数字の場合には、数値演算することができてしまいます。

例えば、そもそも文字列を足し算することなどできないので、もし数字に「’’(シングルクォーテーション)」が付いていて文字列として認識されていたら、これを外して数値データとして足し算してあげるのが原則です。

ただし、何かの不手際で文字列同士を足し算してしまったりしたらエラーが出てくれるのかと思いきやそうではありません。これを「暗黙の型変換」といって、次項で詳しく説明します。

注意すべき「暗黙の型変換」とは?

以下のような演算子をつかった場合、値はどのように表記されるのでしょうか?

<?php
      $num = '10' + '10'; 
      echo $num;
?>

これは、PHPの暗黙の型変換という機能になります。
実は、PHPには正しくない型で演算が行われたときに、正しい型に変換するという機能があるのです。

ご覧のとおり、足しているのは数値ではなく「”(シングルクオーテーション)」で囲まれているので文字列です。
文字列同士を足してしまったら、一体どうなるのかというと…

値は、「20」と表記されます。

便利な機能だと思いますよね?

ただしこれは、「無理矢理キャストした」という解釈になるので、想定外のバグを引き起こす要因にもなりえます。
正しいプログラムを書くことが何よりも大切であるということですね。

PHPの基本「文字列型(string)」を「キャスト演算(cast)」で変換してみよう

int型のデータを代入した変数を「””(ダブルクォーテーション)」で囲って文字列型に変換した場合

<?php
  $str = 1000;
  var_dump("$str");
?>

結果

string(4) "1000"

キャスト演算で文字列型に変換した場合

<?php
  var_dump((string)1000);
?>

結果

string(4) "1000"

整数1000を文字列に変換した値を「変数$str」に代入しています。それを「var_dump(バーダンプ)」という関数で「()」の中に表示したい値を入れてあげることで処理ができます。

つまり、キャスト変換は「変換したい値の前に、変換先の型名を書くことで元のデータ型を変換」してくれます。

strval関数で文字列型に変換した場合

strval()を使うのは、PHPで文字列型に変換する一般的な方法のひとつです。

<?php
  var_dump((strval)1000);
?>

結果

string(4) "1000"

このように、stringを使ったキャスト演算と同じ挙動になりますね。

別のパターンでの変換を見てみましょう

<?php
   var_dump(strval(1.6));
   var_dump(strval(NULL));
   var_dump(strval(true));
   var_dump(strval(false));
?>

結果

string(3) "1.6"
string(0) ""
string(1) "1"
string(0) ""

PHPでは、trueの値を出力すると1になり、falseを出力すると空文字になるという特性があるので、覚えておきましょう。また、「NULL」というのも空文字になっていますが、こちらは「無」を表現しています。

プログラミングには「0(ゼロ)」ではなくて、「そもそも何もない」ということを表現するための型が存在します。

データ型変換のエラー例

例えば、以下のようなコードを書いて実行してみましょう。

<?php
  $str = "Hello";
  $num = 2021;

  echo $str . $num;
  echo PHP_EOL;
  echo $str + $num;
  echo PHP_EOL;
?>

結果

Hello2021
PHP Warning:  A non-numeric value encountered 〜
2021

$strには「Hello」という文字列、$numには「2021」という数値を代入しました。「Hello2021」という結果は文字列同士の連結になっていて、次のエラーメッセージは数値同士の足し算をしようとした結果、「数値ではない値が入っていますよ」という警告文が表示されました。

そして、最後に「2021」が出力されたのは、先にご紹介した暗黙の型変換という挙動によってです。

PHPの基本「文字列型(string)」と「キャスト演算(cast)」が学べるサイトの紹介

Progate

プログラミング初心者の学習サイトとしては最も有名といってもいいでしょう。
ゲーム感覚でプログラミング学習ができるので、初心者のハードルを下げてより多くのひとにプログラミングの楽しさやエンジニアとしてのキャリアアップのきっかけつくりになると思います。
学習コースもPHPの他、HTML/CSSの基礎はもちろんのこと、JavaScriptやRuby、Pythonといった人気言語のコンテンツも豊富で、それぞれにしっかりレベル分がされているのがとても親切です。

初心者から、創れる人を生み出す「Progate」

ドットインストール

Progateに並ぶ有名なプログラミング学習サイトです。
特徴的なのは、ひとつひとつのコンテンツが3分程度の短い動画にまとめられていて、ユーザーは一緒に手を動かしながら学習できます。

こちらも豊富な学習コースがあって、iPhoneやAndroidのアプリ開発についても学ぶことができます。

3分動画で、無理なくスキルを身につけられる「ドットインストール」

Udemy

130,000以上の学習コースが用意されているオンラインの学習プラットフォームです。
「人気のPHPコース」や「PHPの受講生が学ぶその他のコース」など、関連性のあるコンテンツも提示してくれています。
膨大な量のコースから自分に合ったものを探すのは大変なように思えますが、そこはさすがにしっかりとしたアルゴリズムでニーズに先回りしてくれています。

世界最大のオンライン学習コースから選択可能「Udemy」

TECH ACADEMY

現役プロのパーソナルメンターがサポートしてくれることが特徴のオンラインプログラミングスクールです。
最短4習慣で基礎を習得できるプログラミングコースや、エンジニア転職保証コースなど、まさにプロを育成していくことに重点をおいたプラットフォームです。

最短コースでとにかく早く実務経験やキャリアアップを成し遂げたい方にはピッタリではないでしょうか。

オンラインプログラミングスクール受講者数No,1[「TECH ACADEMY」

まとめ

いかがでしたか?今回は、PHPの基本「文字列型(string)」「キャスト演算(cast)」について説明しました。
プログラミングにおいて、データ型の概念というのは非常に重要な要素になります。
ここを理解せずに学習を進めても、基礎が構築されていないまま建物をたてるようなものなので、いずれガタがきて、もろくも崩れ落ちてしまう結果になりかねません。

上級のエンジニアほど、データ型をしっかりと理解して上手に扱っているのですね。

この記事が、PHPの基本である「文字型(string)」と「キャスト演算(cast)」の学習や理解に役立つと嬉しいです。

コメント

タイトルとURLをコピーしました