
スキルアップ
2021.04.15
社会人におすすめなプログラミングスクールの条件とは?目的別25校と選び方
突然ですが、社会人に最適なプログラミングスクールの条件とは何かをご存じですか?本記事では「未経験からIT業界に就職したい」「今の職場でスキルアップしてから転職したい」という20代~30代に向けて、元エンジニアがおすすめの […]
PHP
2019.05.14
PHP では、変数を扱う際に データ型の指定や変換が自動的に行われるので、普段はデータ型を意識しないことが多いですが、比較演算子を使用する場合等、データ型の自動変換が上手く働かない場合もあり、そのような場合はデータ型の変換が必要です。
今回は PHP で 文字列から数値へデータ型を変換する方法を紹介します。
尚、本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事を
ご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方
最終更新日:2019年5月14日
1. データ型を指定してキャスト
2. intval でキャスト
データ型を変換することをキャストするとも言います。
キャストする方法としてわかりやすいのが、明示的にデータ型を指定する方法です。
次のように、括弧内にデータ型を記述して指定します。
(int)$string
文字列変数 $string の前に「 (int) 」を記述すると、$string が整数型にキャストされます。
変数が文字列以外のデータ型である場合も同様に、指定したデータ型にキャストされます。
このようにデータ型を指定してキャストする場合、PHP では主に次のような指定の種類があります。
(int) : 整数型へキャスト (float)、(double) : 浮動小数点数型へキャスト (bool) : 論理型へキャスト (string) : 文字列型へキャスト (array) : 配列型へキャスト (object) : オブジェクト型へキャスト
データ型を指定して、文字列を数値にキャストしてみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$str1 = "10";
var_dump($str1);
var_dump((int) $str1);
$str2 = "99.999";
var_dump((int) $str2);
var_dump((float) $str2);
?>
</pre>
var_dump 関数についてはvar_dumpをご参照下さい。
「 string(2) “10” 」は string( 文字列型 )の「 10 」という意味です( この場合は括弧内の 2 はサイズを表しています )。
「 int(10) 」は int( 整数型 )の「 10 」、「 float(99.999) 」は float( 浮動小数点数型 )の「 99.999 」を意味しています。
var_dump 関数の代わりに echo で出力すると、「 10 」「 10 」「 99 」「 99.999 」と値のみが表示されます。
また、「 (int) “99.999” 」のように、小数を含む数字を整数型の「 (int) 」でキャストすると、小数点以下が切り捨てられてしまいます。
尚、<pre> ~ </pre> はデータを改行して出力するために記述しています。
intval 関数を使用して文字列を数値にキャストする方法もあります。
intval 関数は、データを整数型にキャストする関数です。
実行すると、整数型にキャストされた値が返ります。
intval 関数は 次のように記述して使用します。
intval(データ[, 基数]);
第 1 引数には、キャストの対象となるデータを指定します。
第 2 引数には、基数( 10(=10進数)、16(=16進数) など )を指定することができます。
基数を指定しない場合は 10進数でキャストされますが、例外的に、キャストの対象となるデータが 「 0x 」で始まる数値の場合は 16進数でキャストされ、「 0 」で始まる数値の場合は 8進数でキャストされます。
intval 関数を使用して 文字列型を整数型にキャストしてみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre>
<?php
$str1 = "033";
$int1 = 033;
var_dump(intval($str1));
var_dump(intval($int1));
$str2 = "0x11";
$int2 = 0x11;
var_dump(intval($str2));
var_dump(intval($int2));
var_dump(intval("1回"));
var_dump(intval("10page"));
var_dump(intval("9999番555"));
var_dump(intval("no.1"));
?>
</pre>
文字列から数値へのキャストという点では余談になりますが、先頭が 0 や 0x の数値を intval 関数でキャストすると、 8進数や 16進数がデフォルトの基数としてキャストされます。
0 から始まる文字列は、0 以外の数字が現れるまで 0 が除外され、0x から始まる文字列は、x を数字以外の文字として認識して、数字以外の文字が現れるまでの数字(この場合は 0 )が整数型にキャストされます。
「 1回 」や「 9999番555 」も同様に、先頭から数字以外の文字が現れるまでの数字のみが整数型にキャストされます。
「 no.1 」のように 数字以外の文字で始まる文字列は、キャストされずに 0 が返ります。
( 配列やオブジェクトを指定した場合もキャストは行われず、空の配列の場合は 0 、空でない配列やオブジェクトの場合は 1 が返ります。)
上のサンプルにはありませんが、小数を含む数字を intval 関数でキャストすると、小数点以下が切り捨てられて整数が返ります。
var_dump 関数についてはvar_dumpをご参照下さい。
また、<pre> ~ </pre> はデータを改行して出力するために記述しています。
スキルアップ
2021.04.15
突然ですが、社会人に最適なプログラミングスクールの条件とは何かをご存じですか?本記事では「未経験からIT業界に就職したい」「今の職場でスキルアップしてから転職したい」という20代~30代に向けて、元エンジニアがおすすめの […]
スキルアップ
2021.04.15
Webディレクターとは、Webサイト制作や、企画、運用の現場においてリーダーの役割を担う職種です。多くの業務をこなすため大変な仕事ではありますが、その分やりがいや魅力もある仕事です。本記事では、Webディレクターの具体的 […]
スキルアップ
2021.04.14
IT業界やエンジニアという職種に対してなんとなくイメージは持っているものの、具体的にどんな仕事をしているのか詳しく知らないという方もいらっしゃるでしょう。本記事では、IT業界とはどんな業界なのかをわかりやすく解説。各業種 […]
スキルアップ
2021.04.02
IT業界未経験からITエンジニアへ転職しようとするとき、強い味方になってくれるのが資格です。IT系の資格試験には数多くの種類があり、取得することでスキルの証明が可能。本記事では、未経験者が就職を有利にするためのおすすめ資 […]
スキルアップ
2021.04.01
「プログラミングができると就活が余裕らしいけど、大学生のうちにプログラミングを学ぶメリットって何?」と考えている方に向けて、本記事では元エンジニアである筆者がこれまでの経験則をもとに、在学中にプログラミングを学習するメリ […]
スキルアップ
2021.04.01
【2021年最新】いざJava SE 11のBronze資格にチャレンジしようと思っても「申込方法が複雑すぎて難しい…」と困っている方も多いのでは?本記事では、2020年に新しくなったOracle認定Javaプログラマ試 […]
INTERNOUS,inc. All rights reserved.