ここから本文です

3つ質問があります。

php********さん

2019/3/1602:52:12

3つ質問があります。

if (isset($a)) {
echo "a.";
}
という文は、isset($a)がtrueなら実行をするという意味だと思いますが、
通常使われるif(a>b)とかとは違ったので戸惑ったのですが、この形にするとissetに限らず()の中がtrueなら実行するという形で用いる事ができるのでしょうか。


htmlspecialchars($txt, ENT_QUOTES));
これは、htmlspeで変更ができないから、ダブルとシングルクオートはENT_で変換しているという事でしょうか。

file_putのマニュアルを見ると
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int
とかあるんですが、これどう読めばいいんでしょうか、
この[]がよく分からないのと、intって型だと思うのですがなぜここに?$flacs=0もよく分からない、フラグはFILE_APPEND等で、数字ではないと思うのですが。

閲覧数:
40
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2019/3/1604:10:03

>()の中がtrueなら実行するという形で用いる事ができる

そうです。それが if構文です。ほとんどの言語でそうなっています(というか例外が思いつかない)。

RTFM.
http://php.net/manual/ja/control-structures.if.php




>htmlspecialchars($txt, ENT_QUOTES));

htmlspecialcharsでHTMLエンティティに変換するときに、単引用符と二重引用符も変換するように第二引数で指定しています。それだけです。当然 & や > や < はHTMLエンティティに変換される(これを行わない指定はないハズ)。

RTFM.
http://php.net/manual/ja/function.htmlspecialchars.php




>この[]がよく分からないのと、

指定してもしなくてもいい(省略可能)という意味です。例示されているfile_put_contentsでは第一引数と第二引数は必須ですが、第三引数以降は必須ではありません。

RTFM.
http://php.net/manual/ja/about.prototypes.php

>intって型だと思うのですがなぜここに?

引き渡す変数(or 定数 or リテラル)の型を指示しています。

>$flacs=0もよく分からない、フラグはFILE_APPEND等で、
>数字ではないと思うのですが。

FILE_APPEND や LOCK_EX などは定数ですが、整数で定義されています。

http://php.net/manual/ja/filesystem.constants.php

手元のxamppで確認した限りでは

FILE_USE_INCLUDE_PATH=1
FILE_APPEND=8
LOCK_EX=2

ですね。ファイルシステム関連だとLOCK_SH=1、LOCK_UN=3 などとなっているようです(他にもGD関連のIMG_JPEG=2 とか)。

#そもそも or で繋いで複数指定できるようになっているので
#整数値じゃないとマズイですよね(汗

  • shi********さん

    2019/3/1604:21:29

    (蛇足)
    if (式) の形式の「式」は真偽値(とみなされる)ものを返す式であれば、比較演算子による比較だろうが関数だろうが何でも書けます。

    #ここでちゃんと理解しておかないと他の制御
    #構造(whileやdo~while)で困ります。




    htmlspecialcharsでENT_QUOTESにする理由についてはこちら ↓ でagunuzさんが提示されたURLに詳しいですね。

    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q142048674...

    そちらを読んでください。基本的にENT_QUOTESを指定するものだと覚えてしまってもかまいません(セキュリティホールを作るよりはマシ)。

    htmlspecialchars/htmlentitiesの正しい使い方
    https://blog.ohgaki.net/correct-htmlentities-htmlspecialchars-usage

    これを読んでいれば出てこない質問だと思うのですが・・・

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる