Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 reference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial
ASP ADO リファレンス | PHP関数リファレンス | MySQL関数リファレンス

PHP入門編:疑わしきは検証せよ

■ PHP入門編

if(式A && 式B) と書いた時、式Aを評価してそれが偽であれば式Bを評価するまでもなく全体が偽となることは、人間が見れば自明です。コンピュータに判断させる場合にも、本当にそう動いてくれれば無駄な処理をする必要がなくなり、実行速度も上がってよいことばかりなのですが、PHPではhんとうにそう動いてくれるのでしょうか?
プログラミングのコツは「信じない、思い込まない」ことです。プログラミングの途中で疑問がわいてきたら逐一検証してみるのが、最初は寄り道になっても結局は上達への早道です。

test006.php

<?
function func1()
{
   print "func1() <br> \n";
   return False;
}
function func2()
{
   print "func2() <br> \n";
   return True;
}
if ( func1() && func2() ):
    print "真です<br> \n";
else:
    print "偽です<br> \n";
endif;
?>

functionとreturnが出てきました。functionはその名の通り、ユーザ定義を作ります。関数名はPHPで定義されている組み込み関数および予約語でなければ、何でも構いません。関数のめいめい規則は後述します。
ユーザ定義関数は0個以上の引数を受け取ることができますが、上記の例では引数なしです。また、関数はreturn命令により一つ異常の値を戻り地としてよい出し元に返すことができます。明示的にreturnで戻らない関数の場合、戻り値はFalseとなります。TrueおよびFalseはPHPの予約語で、それぞれ真と偽を表します。"True"および"False"と二重引用符で囲ってしまうと単なる文字列となってしまうので、コーディングの際は気をつけましょう。
ユーザ定義関数は、定義されるだけでは実行に何の影響も及ぼしません。test006.phpで一番最初に実行されるのはif文です。Ifの()内の評価式が複数あれば、左側から順に評価されます。最初の評価式func1()は関数なので、ユーザ定義関数への呼び出しが発生し、func1()に制御が移ります。
func1()では、単にfunc1()<br>\nという表示を行った後、呼び出し元に対してFalse(偽)を返しています。ここでifに制御が戻りますが、&&で結合された評価式のうち一つが偽と判定されたので、そのあと、皇族をいくら評価しようが全体としては偽に決まっています。そこでPHPはIF文の条件が成り立たなかった場合の処理である「偽です」の表示を行い、プログラムを終了します。これはfunc2()に入れば必ず行われるはずのfunc2()<br>\nの出力が行われていないことから明らかです。

<<戻る
R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!