文字列の扱い

文字列は「"」ダブルクォーテーションか「'」シングルクォーテーションで囲って表します。

「”」で囲った文字列の中に「”」の文字を入れるとか、「’」で囲った文字列の中に「’」の文字を入れることはできません。

 

対処法

・「”」や「'」の直前に¥(下記は\)をつける。

・「"」と「’」を使い分ける。「”を' 'で囲う。あるいは、'を" "で囲う。

(例)
<?php
//エスケープ
print"頑張ろう\"日本\"";

print"頑張ろう'日本'";

print'頑張ろう"日本"';
?>

結果

f:id:mkyosuke:20191125153717p:plain

「"」には文字列を囲うという働きがあるので、「"」がもつこの「働き」を打ち消してやります。

特別な意味を持つ記号や文字の働きを打ち消すことをエスケープといいます。この場合、エスケープを行う文字(エスケープ文字)として「¥」を付けます。

 

※「"」ダブルクォーテーションか「'」シングルクォーテーションの違い

文字列で囲った場合、まったく同じ動きをしますが、変数を囲った場合は結果が異なります。

次の場合、「$a」が展開されない為、「$a」という文字列で扱われます。結果、「$a」

と表示されます。

 

変数$aをシングルクォーテーションで囲った場合

<?php
$a = 2015;
print '$a';
?>

結果

f:id:mkyosuke:20191125155409p:plain

 

変数$aをダブルクォーテーションで囲った場合

<?php
$a = 2015;
print "$a";
?>

結果

f:id:mkyosuke:20191125155654p:plain


ただし、変数名付近にマルチバイト文字があるときなどは、正確に展開してくれません。その場合、変数{}で囲います。

 

<?php
$a="基礎";
$b="からの";
$c="PHP";
print"{$a}{$b}知識を重視した{$c}の参考書です。";
?>

結果

f:id:mkyosuke:20191125160239p:plain

 

 文字列の結合

PHPでは、文字列の結合は「.」ピリオドを使います。

 

<?php
$a="基礎";
$b="からの";
$c="PHP";
print$a.$b.$c;
?>

結果

f:id:mkyosuke:20191125160550p:plain