質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1263閲覧

PHPの「文字列<->数値」の型変換

_Kit_Ok_

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/19 01:25

PHPの簡単な質問です。文字列と数値の扱いがわかりません。
内部でどのような型変換が行われているのか知りたいです。

###ソースコード
echo "5+5=".10;
だとエラーが出ますが、

echo "5+5=".(10);
のようにカッコを付けるとエラーが出ません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

これは、「.10」が「0.10」と解釈されてしまうために、"5+5=" 0.10とされてエラーとなっています。

. 10のように、ピリオドと数字の間に空白を入れましょう(3v4lでの実行例)。

投稿2017/04/19 01:40

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Kit_Ok_

2017/04/19 01:48

そ、そんな・・・笑 なかなかややこしい問題ですね。迅速な回答ありがとうございました!
maisumakun

2017/04/19 01:54

「数値リテラルをピリオドで文字列連結する」という状況が、実用的にはほぼ発生しないので(文字列リテラルを持ってくるのが適当だし)、問題になっていないのだと思います。 Rubyでは記号がトークンの一部に入りうるので、「? :」の3項演算子は、?の前後、:の前後、合計4箇所のスペースがほぼ必須になっています。
_Kit_Ok_

2017/04/19 02:45

確かに実用では問題にならなさそうですね。 補足ありがとうございます!
guest

0

※注意:以下誤りを含みます

この辺の柔軟性がPHPの良いところでもあり悪いところでもあります。
変数でやると自動的にキャストされます

PHP

1$a=10; 2echo "5+5=".$a;

整数を直接ピリオドで文字列としてつなげないようです
キャスト関数を利用するか、型を明示すればいけます

PHP

1echo "5+5=".(String)10;

なおカッコをつけても数値は数値ですが、論理的にキャストできる状態になるみたいですね

PHP

1var_dump(10); 2var_dump((10)); 3var_dump((1).(10)); 4

結論

キャストの問題ではないようですね
上記間違っているようですが自戒のため残しておきます

投稿2017/04/19 01:35

編集2017/04/19 01:43
yambejp

総合スコア114821

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Kit_Ok_

2017/04/19 01:47

回答ありがとうございます。初学者なのでキャストに関して勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問