よろしくお願いします。
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ランキング
-
Luaにて、and or の組み合わせ...
-
POSTされたかどうか確かめる方...
-
複合演算子につきまして!
-
Google chart API 、PHP、MySQL...
-
データ)表示件数について
-
Dosブロンプトでtabを出力したい
-
DTOとEntityの差は何ですか。
-
switch()文で値の大小比較
-
小数点以下0の非表示
-
バッチファイルでpingの結果を...
-
ローカルのコンピュータ名を取...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
「取得先」という表現について
-
Sessionの上限について
-
shシェルスクリプト 空白行の...
-
既存関数の上書き
-
セッションを維持したまま、サ...
-
昨日の日付名でファイルを作成...
-
ブラウザを閉じた後もセッショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付を基にした乱数生成
-
<A href ~で複数の値を渡したい
-
「次の10件を表示する」のよ...
-
PHPでwait処理ってできます?
-
POSTされたかどうか確かめる方...
-
PHPのif文「POSTしていな...
-
テーブルに送信ボタンをつける
-
PHPでのNULLの正規表現
-
PHP フラグ
-
if文の複数条件。
-
if (isset($_a)&&$_a)この意味は
-
逆順表示したい?
-
PHP ハイパーリンク
-
Luaにて、and or の組み合わせ...
-
null代入とunset()の違いについて
-
SQLのデータを分割してブラウザ...
-
$_SERVER["QUERY_STRING"]の仕...
-
whileループの中でフォーム入力...
-
switch文で2つ以上の変数の値...
-
parse_ini_fileでダブルクォー...
おすすめ情報