XHTMLとPHPを勉強しよう
ブックマークに追加する
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ブックマークに追加する

ダブルクォートの中の文字列と変数の識別のされかたって?

$から始まって、変数名として使える文字以外の文字が現れたところまでが変数になります。

ダブルクォート内の文字列中にドル記号($)を見つけると、変数名に使用できる文字が終わるまでを変数と解釈します。変数名には文字([a-zA-Z])、数字、アンダースコア(_)を使用できます。
下の例は、$nameは正しく解釈されます。

<?php
print "$name's Shop"; 
print "$name$no"; 
print "<dt>$name<dt>"; 
?>

上の3つはどれも$nameの直後の文字が変数名として使用できないため$nameまでが変数名として解釈されます。
次の例は、$nameを正しく解釈できずに、「$nameWorld」、「$nameさん」という変数として解釈されてしまいます。

<?php
print "$nameWorld"; 
print "$nameさん"; 
?>

■変数を{ }で区切る!!

変数と文字列の境界が識別できないときは、変数を{ }で区切ります。{ }を使うことで余分に空白などを入れることなく変数を正しく識別できるようになります。
下の4つはすべて$nameとして解釈されます。

<?php
print "{$name}さん"; 
print "{$name }さん"; 
print "${name}さん"; 
print "${ name }さん"; 
?>

この構文は、$が{ のすぐ後に続く場合か、{ が$のすぐ後に続く場合にのみ認識されます。下のように$と{ の間に空白が入ると、{ }は変数を区切るための記号とは解釈せず、文字列と解釈します。

<?php
$name = "田中";
print "{ $name }さん"; 
?>

上の実行結果は、下のように{ }と内側の空白が出力されます。

{ 田中 }さん

■配列を記述する!!

ダブルクォートの中には、配列を書くこともできます。

<?php
print "$member[1]さん"; 
print "{$member[1]}さん"; 
?>

配列の場合は$member[1]の]で変数名は必ず終わるために、すぐ後にアルファベットなどの文字が続いても変数は識別されます。上の2つ目のように{ }でくくって書くことももちろんできます。

■オブジェクトのプロパティを記述する!!

ダブルクォートの中には、オブジェクトのプロパティを記述することもできます。

<?php
print "$member->name さん"; 
?>

上の例では、「$member->name」の後に空白があるためプロパティ名を認識できていますが、空白がない場合は「$member->nameさん」というプロパティ名と解釈されてしまいます。これを回避するには、{ }を使います。

<?php
print "{$member->name}さん"; 
?>

■書き方を統一したい!!

変数名を上で述べてきたように変数の時、配列のときなど書き方を変えて書くよりもいつも同じ書き方にしておくほうが、エラーを減らして効率アップにつながると思います。私は、いつも下のように文字列を連結する「 . 」を使い同じ書き方にしています。こうすれば、シングルクォートで書くときとも同じになります!!

<?php
print "名前:".$name."さん"; 
print "名前:".$member[1]."さん"; 
print "名前:".$member->name."さん"; 
?>

どうですか?こうすると、変数として認識しやすくもなります。後で見直しても見落としがへりますよね?こういった文字列を連結を連結する書き方もいいと思いますので、採用してもらえるとうれしいです。

スポンサーサイト

管理者にだけ表示を許可する
http://kattsuk2.blog111.fc2.com/tb.php/33-bd9c7d9d
この記事にトラックバックする(FC2ブログユーザー)
// HOME // 
Powered By FC2ブログ. copyright © 2005 かっつのXHTML+PHP all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。