前提・実現したいこと
ここに質問の内容を詳しく書いてください。
PHPしっかり入門教室 使える力が身につく、仕組みからわかる。 という本を読んでいます。
その中でログインの仕組みをつくるという項目がありまして、
ログイン用のフォームに入力した値に対してバリデーションをするコード例が載っています。
その部分でどうしても理解できないことがありまして投稿するに至りました。
該当のソースコード
PHP
1 if(!check_words($password, 50)) { 2 $errs['password'] = 'パスワードは必須、50文字以内です。'; 3 } elseif(!$member = select_user($dbh, $u_name, $password)) { 4 $errs['password'] = 'パスワードとユーザーネームが正しくありません。'; 5 }
※コードの補足
check_words($word, $length)
はユーザ関数です。
ユーザが入力した値に対して、
文字数が超過してますとか0だったら文字を入力してください的なエラーを出すためのものです。
不明点
わからない部分の該当の箇所はここになります。
!$member = select_user($dbh, $u_name, $password)
これ自体は変数定義をしている文だと思うのですが、
変数定義文の最初に否定の論理演算子がついていた場合、
この文自体の意味はどうなるのでしょうか。
というのも、例示したコードではif
文の中で変数定義がおこなわれていますが、
可読性が下がってしまうのではないかと思い、意味を知ることで、
どうにか別の表現で同じことができればいいなと考えています。
補足情報(FW/ツールのバージョンなど)
PHP7系
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/18 09:27