文の最後にセミコロン(;)をつけます。セミコロンで区切れば1つの行の中に複数の文を記述できます(おすすめはしません)。
プログラム中に「#」が現れた場合、「#」から行末までをコメントとして扱います。(シェルスクリプト仕様)
プログラム中に「//」が現れた場合、「//」から行末までをコメントとして扱います。(C++言語仕様)
プログラムの中で「/*」が現れた場合、「*/」が現れるまでを全てコメントとして扱います。(C言語仕様)。
文字列をプログラムの中で記述する場合、シングルクオーテーション(')またはダブルクオーテーション(")で囲います。
'文字列' "文字列"
ダブルクオーテーションで囲った場合は、エスケープシーケンスや変数展開が使えます。
変数展開は次のように使います。(#以下は実行結果を示します)
$tanka = "120";
$kosuu = 25;
$soukei = $tanka * $kosuu;
print "$tanka × $kosuu = $soukei" ; #120 × 25 = 3000
さすがに以下はうまく行きませんが、
print "$tanka × $kosuu = ($tanka * $kosuu)" ; #120 × 25 = (120 * 25)
こちらは可能です。
print "$tanka × $kosuu = " . $tanka * $kosuu ; #120 × 25 = 3000
変数名が確定しないときは{ }が必要になります。
$mojii2 = "数値も文字列も";
print "ダブルクォート内に書くと$mojii2変数の値を展開します。" ; #ダブルクォート内に書くと
{ }を加えると、
print "ダブルクォート内に書くと${mojii2}変数の値を展開します。" ; #ダブルクォート内に書くと数値も文字列も変数の値を展開します。
改行など普通の文字で表せない文字を入れるときや、$のように特殊な意味を持った文字から特殊な意味を取り去って普通の文字として表示したい時に使います。
次のエスケープシーケンスはダブルクオーテーションで囲まれた文字列の場合にのみ使えます
ダブルクオーテーションで囲まれた文字列の中で、文字として「"」を記述したい場合は「"」の代わりに「\"」と記述するということです。
\n | 改行 |
\r | キャリッジリターン |
\t | タブ |
\\ | \文字 |
\$ | $文字 |
\( | 左括弧 |
\) | 右括弧 |
\[ | 左括弧 |
\] | 右括弧 |
\' | シングルクオーテーション |
\" | ダブルクオーテーション |
\nnn | 8 進数表記 |
\xnn | 16 進数表記 |
シングルクオーテーションで囲まれた文字列の中でも次の2つだけは使えます。
\' | シングルクオーテーション |
\\ | \文字 |
複数行に渡る文字列を定義するのに便利な書き方です。任意の文字列をIDとして指定して「<<< ID」から「ID」の間に記述します。
<<< ID 文字列1 文字列2 文字列3 ID
「ID」は任意の文字列が指定できます。例えばIDとして「Document」とした場合は次のようになります。
$str = <<< EOD 文字列の例です。 IDは英数字およびアンダースコアのみからなり、英字またはアンダースコアで始まる必要があります。 終端 ID がある行はIDを単独で書きます。インデントしてはいけません。 EOD;
文字 | 説明 | 例または値の範囲 |
---|---|---|
Y | 年。4 桁の数字。 | 例: 1999または2003 |
y | 年。2 桁の数字。 | 例: 99 または 03 |
m | 月。数字。ゼロをつけて2桁。 | 01 から 12 |
n | 月。数字。ゼロをつけない。 | 1 から 12 |
M | 月。文字。3文字。 | Jan から Dec |
F | 月。文字。フルスペル。 | January から December |
d | 日。ゼロをつけて2桁。 | 01 から 31 |
j | 日。ゼロをつけない。 | 1 から 31 |
h | 時。12時制。ゼロをつけて2桁。 | 01 から 12 |
H | 時。24時制。ゼロをつけて2桁。 | 00 から 23 |
g | 時。12時制。ゼロを付けない。 | 1 から 12 |
G | 時。24時制。ゼロを付けない。 | 0 から 23 |
i | 分。ゼロをつけて2桁。 | 00 から 59 |
s | 秒。ゼロをつけて2桁。 | 00 から 59 |
a | 午前/午後(小文字) | am または pm |
A | 午前/午後(大文字) | AM または PM |
D | 曜日。3文字。 | Mon から Sun |
l | 曜日。フルスペル。 | Sunday から Saturday |
N | 曜日。数値。ISO-8601 | 1(月曜日)から 7(日曜日) |
w | 曜日。数値。 | 0(日曜)から 6(土曜) |
文字 | 説明 | 例または値の範囲 |
---|---|---|
o | 年。ISO-8601形式。Yとほぼ同じ。 | 例: 1999 あるいは 2003 |
L | 閏年であるかどうか。 | 1なら閏年。0なら閏年ではない。 |
t | 指定した月の日数。 | 28 から 31 |
S | 英語の序数を表すサフィックス。2文字。jと一緒に使用 | st, nd, rd または th。 |
z | 年間の通算日。数字。(ゼロから開始) | 0 から 365 |
W | ISO-8601 月曜日に始まる年単位の週番号 | 例: 42 (年の第 42 週目) |
e | タイムゾーン識別子 | 例: UTC, GMT, Atlantic/Azores |
O | グリニッジ標準時(GMT)との時差 | 例: +0200 |
P | グリニッジ標準時(GMT)との時差。時間:分。 | 例: +02:00 |
T | タイムゾーンの略称 | 例: EST, MDT ... |
c | ISO 8601 日付 | 例: 2004-02-12T15:19:21+00:00 |
r | RFC 2822 日付 | 例: Thu, 21 Dec 2000 16:01:07 +0200 |
B | Swatch インターネット時間 | 000 から 999 |
u | マイクロ秒。date()では常に000000。DateTime::format()で対応。 | 例: 654321 |
I | サマータイム中か否か | 1ならサマータイム中。 0ならそうではない。 |
Z | タイムゾーンのオフセット秒数。 UTCの西側で負、東側で正。 | -43200 から 50400 |
U | Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの秒数 | time() も参照 |
// デフォルトのタイムゾーンを設定。PHP 5.1 以降 date_default_timezone_set('UTC');
// 出力: July 1, 2000 is on a Saturday echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)); // 出力例: 2006-04-05T01:02:03+00:00 echo date('c', mktime(1, 2, 3, 4, 5, 2006));
ファイルの最初の行のxml宣言部を次のように書き換えます。
<?php print '<?xml version="1.0" encoding="UTF-8"?>' ?>
こうしておかないと、
Parse error: parse error, unexpected T_STRING in /srv/httpd/hoge/hoge.php on line 1
などのエラーがでてページが表示されないことがあります。
これは <?
だけでphpプログラムとするやりかたもあり、php側が<?xml
をphpのプログラムと解釈してしまうからです。本当は<?
のあとがphpかxmlかで棲み分けをしたはずなのですが。