X

phpにおけるシングルクオーテーションとダブルクオーテーションの違い

この記事は約 2 分で読めます。

こんにちは。ウチダユウマです。phpでWebサービスを開発する中でハマった一つがダブルクォーテーションの使い方でした。これから開発する人が同じ轍を踏まないように書き残したいと思います。

シングルクォーテーションとダブルクォーテーションの違い

変数 処理速度
シングル 展開しない 速い
ダブル 展開する 遅い

変数の展開というのはphpで書くと

<?php

$blog = '明日の働き方';

echo ‘$blog’;  ⇨  $blog

echo “$blog”;   ⇨  明日の働き方

?>

変数展開とは変数の中身を出すか、出さないかという事です。

失敗したポイント

今回、僕がハマったポイントは変数の中に変数が入るパターンです。

<?php 

$name = ‘YUMA’;

$mail = ‘こんにちは。”$name”さん’;

?>

といった具合に代入する値全体にシングルクォーテーションをかけて、変数にだけダブルクォーテーションをかけていました。そうすると・・・

「こんにちは。”$name”さん」というメールが届いてしまいました。よくよく考えてみるとシングルクォーテーションは囲った中身をそのまま出力するので、ダブルクォーテーションごと出力されていました。

ではどうすればいいか?

 

シンプルに考えて使おう

難しく考えず、使い分けましょう。

変数を展開したい場合、代入する値全体をダブルクォーテーションで囲えばOKです。

<?php

$name = ‘YUMA’; 

$mail = "こんにちは。$nameさん”;

?>

とすれば、「こんにちは。YUMAさん」という内容のメールが届きます。

こんな簡単なミスで1時間以上悩んでしまいました・・・

この記事で同じ轍を踏まない人が居てくれるとうれしいです。