![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
よろしくお願いします。
PHPリファレンスに,以下のように書いてありました。
<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
}
?>
2行目のifの条件文なのですが,=は代入することを表すから,
()の部分は条件文にならないと思ったのですが,どう解釈すれば良いのでしょうか。
No.4ベストアンサー
- 回答日時:
if ($handle = opendir('.')) {
は"."(カレントディレクトリ)をopendir()した結果を
$handleに代入したうえで、そのopendirの結果が正常かを
if分岐させています。
$handle = opendir('.');
if ($handle ) {
を1行で書いていたのと同等です。
つまり、カレントディレクトリが、オープンできればifが成り立ち
オープンできなかったら、ifが不成立となります。
一番しっくり来ました。
回答ありがとうございます。
まだ分からない点もあるので,また質問するやもしれません。
助かりました!ありがとうございました。
No.3
- 回答日時:
マニュアルより
if (式) 文
式が TRUE と評価された場合、 PHP は文を実行します。
どのような値が FALSE と評価されるかについては論理値への変換を参照してください。
ざっくり言うと式の結果がFALSEぽいのでなければ文は実行されます。(ざっくりですよ)
print ( $a = 'aaa' ); これは aaa が表示されるので FALSE ではないですよね。
また、 $a; これも式です。
opendir は成功時にはFALSEを返しません。まぁつまり
$handle = opendir('.');
if ($handle == true) {
ということですがどうでしょう。
ちなみに ! = = や = = = は型も同じかどうか評価します。
参考URL:http://jp.php.net/manual/ja/control-structures.i …
No.2
- 回答日時:
true/falseとは、readdir関数の戻り値$fileを論理値に変換した値です。
よって、「0」という名前のディレクトリーがあると、
$fileの中身そのものは"0"という(正しい)名前なのに
$fileの論理値はfalseとなってしまい、
おそらく本来の意図とは異なるであろう動きをします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文「POSTしていな...
-
テーブルに送信ボタンをつける
-
POSTされたかどうか確かめる方...
-
ps3で久しぶりにCDの音楽情報取...
-
wordの差し込み印刷で文字...
-
php 入力画面から確認表示画面...
-
バッチファイルでpingの結果を...
-
Yahoo! JAPAN IDを新規取得でき...
-
テレビ番組表
-
VB.NETで他のアプリが完全に起...
-
PHPでページング
-
VB or VBScriptでPCの製造番号...
-
DBから行を取得したフィールド...
-
PHPで値を保持する方法
-
WordでExcelデータを差込...
-
Windowsのsetコマンドでの小数...
-
MSFlexGridのデータを初期化し...
-
DTOとEntityの差は何ですか。
-
日本時間
-
6ヶ月前の日付を取得するにはど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<A href ~で複数の値を渡したい
-
日付を基にした乱数生成
-
テーブルに送信ボタンをつける
-
「次の10件を表示する」のよ...
-
PHPでwait処理ってできます?
-
なぜエラーが出るのか分からな...
-
null代入とunset()の違いについて
-
PHPのif文「POSTしていな...
-
if (isset($_a)&&$_a)この意味は
-
microtime関数は、結構イイカゲ...
-
アクセスキーについて
-
POSTされたかどうか確かめる方...
-
複合演算子につきまして!
-
Luaにて、and or の組み合わせ...
-
$_SERVER["QUERY_STRING"]の仕...
-
PHPでのNULLの正規表現
-
PHPのGETパラメーターの検索値...
-
データ)表示件数について
-
SQLにあるデータをWEB画面に出...
-
vbYesNoの使い方
おすすめ情報