2010年01月20日

ループさせる方法

 カレンダーを作る時に、前回はcheckdate()関数を使いますよ!という事と

「ループさせてプログラムを終える」という考えが、カレンダーを機能させるというところまでいきました。
 では?このループさせるためには、どんな方法を使うのか

というところから、話を繋げていきたいと思います。


 繰り返しで使う構文は、while(条件)になります。

if構文と大変にているのですが、ifの方は条件が成立しているかどうかで1回だけの動作
という形でしたが、

whileの方はというと、条件が成立している間は何度でも繰り返し実行するという特徴になります。

 とここで、条件が成立しなかった場合はどうなるのか?という事が疑問に成ります。


 $i=0;

   while ( $1<5) {

   echo( $i );

   $i=$i+1;//

  }


 最初に変数iを宣言して、初期値として0を代入しています。

 上の例では$i<5と記載されていますので、$iが5より小さい時には条件が成立しています

つまり0・1・2・3・4までは5よりも少ない数なので、条件が成立するけれども、

数字が5になると、条件が成立しなくなります、という記載の仕方です。

$i=$i+1;という書き方で、$iは$iに+1すると、条件が合わなくなる!という事を書き表します。

 そんなわけで、実際のプラウザでの画面には0〜4の数字が順番に表示されることになるという仕掛けです。


タグ:ループ
posted by アラフォー親父 at 14:44 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月19日

php備忘録・checkdate()関数

 今回からは、繰り返し配列をマスターするために、カレンダーという教材を
使ってみようかな?と考えたわけなんですが、どうでしょかね?

というか、進めていきますが。


 まずは“カレンダー”がどんなものなのか、把握しておく必要があります。

日常的に使っているものですから、大事な部分を見落としてしまう事があるかもしれません

 そこで“カレンダー”の要素を考えておきましょうか。



  • 30日の月と31日の月がある

  • うるう年が来る年がある

  • 2月は基本的に28日で終わる


 簡単に掲げてみて、上の3つの要素を抜きには考えてはいけない事になります。

ということは、この3つの要素をきちんとプログラミングしておけば、カレンダーとして機能するわけなんです。


 これをphp以外のプログラミングで行うと、日付に関係する関数が無い場合は、

アルゴリズムでプログラミングしていく必要が出てきます。

 しかしphp言語では、前回までに紹介していたdeta()関数というものが使えます


 カレンダーの場合ではこのdeta()関数に加えて

「指定した日付が暦の上で実際に有効か?」をチェックする、checkdate()関数

使っていく方法を使っていきましょう。


 checkdate()関数の覚書を下に記載してみましたので、参考にして下さい。

【 checkdate()関数 】

checkdate(月の値・日の値・年の値)

<月の値・日の値・年の値> 指定された日付が有効であれば、tureを返し

  そうでなければfalseを返す

<戻り値> ture/false


 当日の「年」と「月」がわかれば、「今月の1日」の日付が判ります。

あとは日付を増やしていって、32日などの「無効な日付」になったら、

ループさせてプログラムを終了させるようにすると、カレンダーが機能してくれます。

 次回から、実戦的な考え方とプログラムの記載を、例のごとくジワジワと書いていきます。


posted by アラフォー親父 at 14:00 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月13日

演算子のチョッとしたまとめ

 今回は前回までのおさらいとして、総まとめを行っておこうと考えました。

やけに慎重だな!って・・・慎重ですねhtmlやCSSみたいに、ザァ〜とはいきませんね。

色々出来るからこそ、しっかり覚えよう!というわけです(筆者の覚えが悪いだけなんだけどね・・)



  • 変数は、データーを入れる「箱」になる。

  • 変数という箱に、データーを入れるには「=」代入演算子を使う。

  • 条件をつけて、選択分岐を作る時は、if ・else if ・elseを使う

  • if条件の記載には「==」比較演算子を使う

  • コメントは、直接プログラミングには関係ないが、「何を意図したのか?」は書いておくべき


 そんなこんなで、一通りまとめてみました。

 個人的には、html・CSSなどとは全く違う感覚を必要とされてしまいますので、

html・CSSは定食という感じで消化したのですが、phpはスルメをいつまでも噛んでいる感じなんです。


 まとめにした部分で気になったのが、実は比較演算子なんですよ。

この比較演算子は、記載を間違えたとしてもエラーにならないわけなんですね。

つまり「==」と記載しなければいけないところを、「=」としてしまっても

プログラム自体は動いてしまいます。

 間違いを、間違いだと気づきにくい部分が、代入演算子と比較演算子なんです。

 なんといっても、いったん記入してしまい数日も経つと、見分けが非常にしにくいわけなんです。

(=と==ですからね)

if ・else if ・elseとセットで使うと覚えていても、入力ミスをしてしまうと見つけることが大変!

 しかもエラーにならない!


 間違えて条件部分に代入演算子を記載してしまった場合は、

「0」以外の値を代入しておけば、条件は成立してしまうという側面もあります。

 プログラムとしては、セミコロンに次いで地味な存在ですが、

記入間違いは御法度になる演算子でございます。

 次回からは、カレンダーを使って“リスト”項目作りを学んでみましょう。


タグ:PHP
posted by アラフォー親父 at 10:00 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月12日

条件分岐と比較演算子

 前回は、ちょっと尻切れトンボみたいな終わり方でしたが、今回は前回に説明出来なかった部分

else ifとelseの説明から始めてみたいと思います。(おおっ!なんと殊勝な文面)


 そんなわけで、いきなりですがelse ifの説明から行きますが、

忘れてはいけないifで表す条件分岐というやつですね。

 この条件分岐「if」の前に、elseが付いてしまうわけですが、

じゃ〜elseって何だ?となるわけですが、if else if elseはセットで使います。



if

条件分岐で、if(条件A){ 条件Aにマッチしている時の処理 }

else if

else if(条件B){ 条件Aにマッチしていないが、条件Bにはマッチする}

else

else  {条件A、条件Bのどちらにもマッチしない場合の処理方法 }


 条件と書くから判りにくくなるのですが、この条件を違う言葉に言い換えると判りやすくなります。


if

if(3時になる){ 3時になったので、おやつを食べる }

else if

else if(まだ3時にならない){ まだ3時じゃないので、おやつは食べられない }

else

else {おやつの時間は過ぎているので、晩御飯だ }


 とまあ、例としては単純なのですが、こんな感じで使っていくのが条件分岐という部分です。

これをphp構文として表した例が下の構文です


 (記載例)

$hour=date( "H" );

//時間に応じたメッセージを表示

if( $hour==3 ) {

echo("<br>3時のおやつになる<br>");

} else if ( $hour==2 ){

echo("<br>まだ3時のおやつにはならない<br>");

}else {

echo ("<br>おやつの時間は過ぎているので、晩御飯だ<br>");

}


 php構文として書き出すと、こんな感じです。

えっ?・・・・・$hour==3の==って何?と思ったでしょう?

実は筆者も思いました。

=は代入演算子ですけど==は比較演算子というそうです。

左==右となっていますけど、右と左を比較して、

一致しているかどうか?を調べる演算子と判断しておいて下さい。

あくまでも調べる!という意味ですので、代入演算子の右の物を左に入れるとは意味が違います
 記載方法が=と==ですから間違いを犯しやすい部分になりますので注意です。
プログラミングでは、記載間違いを起こしやすい!うっかりすると意味が全然違う物が多数あります。
なので、くれぐれも記載方法を間違えない工夫が必要になってくると思います。

筆者は、ついはずみで!ポンポンっと=を入力しそうになるものですから、

出来るだけコメントを入れるようにしています。

コメントはhtmlでは<!--文章-->、cssでは/*文章*/でしたが、

phpでは//でコメントが始まって、その行の終わりまでがコメントとして扱われます。!
 その辺が、htmlやcssとの違いになります。

(だからエディタは指定行での改行はしない方がいいわけなんですよ)


 ちょっと今回は長めになりましたが、条件分岐と比較演算子は理解出来たでしょうか?

次回は、今までのおさらいを兼ねて、一通りまとめてみたいと思います。(お〜先生みたいだ・・)


タグ:php
posted by アラフォー親父 at 10:00 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月09日

条件分岐ってなんだ?


 条件分岐(if)を使ってみるぜぃ!

と、言うわけで、前々回から続いているわけなんですけど、プログラミングを設定する際に、

「もし〜だったら、〜する。〜しなかったら、〜する」という選択部分に使うのが(if)です。
ちょっと、わかりにくいか・・・

 変数の箱に1つの命令を入れておくと、その時々の条件でyesかnoに分かれる仕組み!が(if)

と覚えた方がいいかな?と思います。

前々回に記載している部分で、



  1. 仕事(学校)が終わり、腹が減ってきた。

  2. 選択肢は2つ、途中で飯を食うか?帰宅してから飯を食うか?のYes or No


 がありましたが、これをもとにしてif構文を作ってみましょう。

if( $hour== 7 ){

echo( "<br>帰宅途中に腹が減ってきた<br>" );

} else if { ←我慢できないなら

echo( "<br>メシ屋に入るか<br>" );

} else { ←我慢できるならば

echo( "<br>そのまま帰宅する<br>" );

}

 と、記載していく方法があります。

なんじゃ〜こりゃ〜?と思うかもしれませんけど、( )の条件分岐の項目に合っているなら、

{ }の中が実行されて、条件に合っていないならば実行されないというかたちになります。

細かい説明は、次回にまわしていきますので、次回からelse ifの使い方から説明していきましょう。


posted by アラフォー親父 at 17:49 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月08日

deta()関数

 今回はdeta()関数という部分を考えてみましょう。

deta()関数って何だ?関数なんて知らん!と、初めは筆者も思いました。

数学が苦手でしたので、変数・関数ときたせいで、ちょっとしたパニックを起こしたくらいですが、

落ち着いて覚えれば、な〜んだ、こんな事を言っているのか!と、大丈夫になります。

では、deta()関数について、ヒョイと参りましょう。


 関数なんて言葉を使うから、チョぃと引いてしまうわけですから、

理解するために"時間"で考えて行きましょう。

 

      (記載例)
                  
$hizuke=date( "Y年m月d日 H時i分s秒" );

 
 とまあ、こんな風に記載されているとします。
 

           
 $hizukeは日本語表記では日付です。

 


      アクセスした年・月・日・時間・分・秒をデータとして、$hizukeの箱に入れる!という命令です。

 

  よくブログの投稿日時が明記されていますけど、そこにはこんな仕掛けが施してあるわけなんですね。

引数として、アルファベットのY,m,d,H,i,sがありますが、この基準は英語での表記方法です。

例えば筆者が、2010年1月10日10時28分47秒にブログの投稿を行ったとすると、

このデータが$hizukeの箱に入る事になるわけです。

こんな感じでdeta()関数は使われていますが、指定方法が多彩なので“1つの例”として覚えて下さい。
ブログ投稿ではなく、もっと身近なアラームに使ったとしましょうか。

 

 例えば、7時に目覚ましが鳴るよ!という命令を作るとすれば、先に記載した


               
$hizuke=date( "Y年m月d日 H時i分s秒" );に付け加えて
               
$hour=date( "H" );が必要になります。



 ここでは“目覚まし”というプログラムを実行する7時に設定したデータを、

戻り値として、$hourという箱に入れますよ!という指示になるわけです。



う〜ん・・段々判らなくなってきそうですが、deta()関数の説明はわかりそうでしょうか?


次は、前回説明したフローチャートと連携して使える条件分岐(if)を交えて考えてみましょう。

タグ:deta()関数
posted by アラフォー親父 at 10:36 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月07日

変数の考え方と代入演算子

 大事な変数というものについて、ちょっと説明していきましょう。

変数というと、数学で習ったy=5X+6的な事を想像したかもしれませんが、

プログラミングではちょっと意味が違います。

 プログラミングで変数といえば

「処理する物をいれておく箱!」という感じになります。

「フローチャート」って判りますか?(こんな図を見たことありませんか?)

furo1.jpg



 フローチャートの分岐する部分がありますけど、

この分岐する部分がだと考えてもらえると判りやすいのではないかと思います。

この箱に、1つの命令を入れておくと、その時々の条件でyesかnoに分かれる仕組みになるわけなんですね。



  1. 仕事(学校)が終わり、腹が減ってきた。

  2. 選択肢は2つ、途中で飯を食うか?帰宅してから飯を食うか?のYes or No

  3. Yesでの選択肢はさらに2つ、メシ屋に入るか?コンビニ弁当を買うか?の選択肢を出す


 こんな感じでしたら、フローチャートを誰でも作れると思いますが、

この時の選択を左右する部分が変数という言葉で意味付けられているわけなんです。

大体OKですかね?変数という部分は。


 変数の書き方はどうする?


 それではここで変数の書き方についてですが、

$+『名前』として書いていきます。

 例としては、$hensu="腹が減った";と書き出します。

またまた、出てきましたね[ = ]という書き方が!

算数や数学では単純にイコールなんですが、プログラミングでは代入演算子と言います。
これは、=の右側にあるデータ(命令)を、左側の変数箱に入れますよ!という意味があります。

イコールではなく、右の物を、左に入れると覚えて下さい。

例えば$hensu="2+2";であれば、$hensuは2+2の結果になる4が入っているよ!という事になります。


 変数の始まりはどうでしょうか?

とりあえずおさらいをしましょう! =はイコールではなく、右の命令を左に入れる
その為に、代入演算子といわれるを使用する!

と覚えましょう。


 ここで変数に使用出来る文字列にはどんなものがあるのか?豆知識として覚えましょう。

数字0〜9・アルファベットa〜zとA〜Z、アンダースコア「_」ASCIIコードの127から255の文字
という事になっています。

数字とアルファベットと覚えておいてもいいでしょうね、記号はアンダースコアだけ

と覚えてもいいと思います。

次は、deta()関数について、覚えてみましょう。

posted by アラフォー親父 at 10:16 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月06日

ダブルクオーツとセミコロン

 え〜前回はecho("[出力する文字列]"¥n);の記載までいきましたが、

echoは出力する!といった感覚で覚えるわけなんですね。

では、その他の部分はなんと判断すればいいのか?なのですが、echoの次に( )で囲われていますよね。
その(  )の間に" "ダブル・クオーツが来ています、

まあ、お約束みたいな部分なのですが、このダブルクオーツを取っ払うと、

構文エラーになってしまうわけなんです。

なので、文字列はダブルクオーツで囲うと覚えましょう。

なぜにエラーになるのかは、決まりごとから外れるから、で筆者は解決しようとしています。

(単純に覚えませんと、キャパを超えてしまいますから)


 文字列をダブルクオーツで囲むのは判った!では¥nは何?

という疑問が出てきますけど、これはhtmlで言うところのbrと意味が同じです、

 つまり改行なんですね。

逆に見ると、¥nがないと改行しないと言う事になりますので・・・・・えっと、

phpに関しては、エディタのセッティングで、指定文字数やエディタ画面の自動改行セッティングは

行わない方が良い!と結論がでてくるわけなんですよ。横スクロールバーの出るセッティングという状態ですね。

つまりphp専用のエディタとして、SDIタイプの1つは指定して使う方がいいと思います。

レジストリーに入らないタイプなら、いくつもありますから自分の好みで選べばいいと思います。

えっ・・?お奨めですか?XPならさくら・Mk・Mery・Mana・などのフリーエディタは便利です。

VISTAならば、さくらとMkは使えませんので、Mery・Mana・なんかはスパッ!と使えますね。


 話が横道にそれてしまいましたが、ダブルクオーツで囲み ¥nは改行、そして忘れていけないのが

(;)セミコロンの存在です。


 このセミコロンはphp文法では、プログラミングの「文」の末尾につける必要があります。

文章の区切りというか、命令の区切り部分にはセミコロンをつける!と覚えておきましょう。

このセミコロン(;)は、初めのうちは入力忘れを犯しやすい部分ですから、

エディタの強調表示にセミコロンを付け加えておくことを勧めます。

色分けなどの設定が行えるエディタなら、セミコロンをわかりやすい色に指定しておく方法もいいと思います。

このセミコロンが無かったばかりに、プログラミングが動作しない!という事が、初めのうちはよく起こしますので、

入力忘れ防止として、エディタのセッティングを一度見直しておくといいでしょう。

タグ:php備忘録
posted by アラフォー親父 at 08:37 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
2010年01月05日

 php備忘録

 php言語についてなんですが、プログラム言語というと、中々とっつき難く感じてしまうのですが、
ちょっとづつでもいいので、基礎から学習していくと、なんとかなるもんです。

 とはいえ、筆者もこれから!といった感じなので、自分が忘れないためにも

ブログをメモ代わりに使ってしまおうと考えてしまったわけなんですね。


 そこでphpの書き出しなどで、よく見るHello!から始めておきますか。

とりあえず、ソースコードに<?php・・・・?>になるとphp言語と言う事になります

そして、ファイル拡張子を必ず.phpとして保存しなければ、

phpとしてサーバーが認識してくれないというわけです。

そうなんですよ、拡張子が.htmlで中にphp言語が記載されていても、

phpとしてサーバーが認識しないという事は、とりあえず基本として押さえるポイントになります。


 拡張子についてはOKですよね、htmlではなくて、phpにするということです。

その他のポイントとしては、phpの始まりと終わりは

<?php・・・?>という形にするという事になります。

なんじゃ〜それ!と言いたくなるのですが、html言語でタグは、

< >という感じで囲まれて機能する事と同じ感覚だと覚えると便利です。


あとは・・最初の難関は、恐らく関数とは何ぞや?にぶつかる為、

な〜にがなんだか、判らないのよ〜状態となると思いますが、

一番ポピュラーな【 echo関数 】の意味は覚えておきましょうか、

意味は単純なのですが、(はい!メモ)【単純に出力する】と覚えて下さい。

正確には、echo("[出力する文字列]"¥n); と、いう書き方になりますけど、

いっぺんに覚えようとすると、筆者なども頭が爆発してしまいますので、

今回はこの位にしておこうかと思いまが・・・

 忘れちゃいけないエディタのセッティングがありました。(いけねぇ!)

必ず文字コードをEUC-JPかUTF-8に変え、改行をLFに変更しておく方が無難です。

絶対に文字コードS-JISでは使用しないようにして下さい。(まあ、知っているよね?)


 次からは、文例を交えて何に注意していけばいいのかを考えるとしますか。
タグ:php備忘録
posted by アラフォー親父 at 10:28 | Comment(0) | TrackBack(0) | php備忘録 | このブログの読者になる | 更新情報をチェックする
最近のコメント