プロが教える店舗&オフィスのセキュリティ対策術

PHPを使い、表形式で今月のカレンダーを作成したいんですが…

<表示例>
日月火水木金土
  12345
6789101112
13141516171819
20212223242526
2728293031

------------

横…7、縦…6
「日」という文字と日曜日の日にちは赤、「土」という文字と土曜日の日にちは青、それ以外は黒。

表示例のようにするにはどうすればよいでしょうか?
サイトなどを参考にしたのですが、printではなくechoで書いてありよく理解できませんでした。

イメージとしてはこちらのサイト様の漢感じです。
http://www.easywebdx.com/php/files/11_01_date.php

A 回答 (3件)

そうですね。


ソースは掲載されているのをよくよく理解していただくとして、
いらないところを削除していろいろ試されたらいいと思います。

print と echo はほとんど同じです。
私も初めて echo の羅列を見た時には、
「よくわからない」と投げ出し気味になってしまった事があります。
他の言語で print に慣れていたので、
「echo ってなんだろう?」と言う感じでした。

参照されているソースのほとんどは、
echo を print に変換されても問題なく動作すると思います。

私が理解しているつもりの大きな違いは、
パラメータを複数記述する事ができるかどうかです。
echo では複数記述でき、print では複数記述できません。

例えば、次のように , で区切って記述できます。
 echo "名前は",$name,"です。";//タイプA

これは、ほとんどの場合、以下のような記述がされています。
 echo "名前は".$name."です。";//タイプB
 echo "名前は$nameです。";//タイプC
, ではなく、.で接続するか、他の文字列と一緒に記述するかです。

print では、タイプAの記述ができませんが、
タイプBとタイプCの記述はできます。
なぜ、このようにあまり違いのない命令(関数(言語構造))を、
2つ用意しているのかはわかりません。
他の言語からやってきた人たちになじみやすいようになら、
print でも , で区切れたらいいのにと思います。

結果、どちらを使っても問題なく、
お好みで選ばれたらよろしいと思います。
参考にされるサンプルソースの echo を print に、
エディタで一括変換したらいいと思います。
, で区切られた記述がある場合には、
. での接続に変更などする必要がありますのでご注意ください。

echo を使う際に、タイプA、B、Cのどれを使うか、
print ならタイプB、Cのどちらを使うかもお好みです。
ただ、私の書いた例だとどれでも問題ありませんが、
複数の変数の内容を連続して記述する際には、
次のようには記述できません。
 print $a$b;

 echo $a$b;

次のように記述するようになります。
 print $a.$b;
 print "$a$b";

 echo $a,$b;
 echo $a.$b;
 echo "$a$b";

こうして見ると、なんとなくですが、
人間の気持ちとして、$aと$bを表示したいと言う気持ちが、
「$aとそれから$bを表示したい」がタイプAで、
「$aと$bをくっつけて表示したい」がタイプBで、
「$aと$bをとっとと出しといて」がタイプCなのかと思いました。

私は、参考にするソースのほとんどが echo だったので、
慣れてしまいました。
使用しているのはタイプBです。

質問者様も echo に慣れられると楽になると思います。
    • good
    • 0

#1の人のいうようにソースも解説もありますよね。


しかも解説はかなり噛み砕いて書かれていますし
ソースにも解説コメント入っていますね。
そのサイトの開設で理解できないとなると質問者には
「無理」というしかないですね。
    • good
    • 0

>表示例のようにするにはどうすればよいでしょうか?


てか、ソース載ってるじゃないですか?

>printではなくechoで書いてありよく理解できませんでした。
の意味が不明です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!