[PHP-users 129] Re: 論理値変数以外の論理評価

T.P.S. 中川 php-users@php.gr.jp
Wed, 20 Jun 2001 11:56:36 +0900 (JST)


パイプ喫いの中川です。

	重松さんが
	06月20日09時57分に発信された
	「[PHP-users 125] 論理値変数以外の論理評価」こと
	<000701c0f924$0767dcc0$cb00a8c0@haunet.ocn.ne.jp>より


>  それは、論理値以外の値を持つ変数を論理評価した場合の動作です。
>  
>  register() のなかで、
>  
>  if($thing){
>      $this->pt[$thing] = true;
>  }
>  
>  のように、文字列変数 $thing を論理評価しています。


  これと逆の PHP の評価方式に、昨日はハマってしまいました。

  Perl の感覚で、(もし $brand_etc に値がセットされていれば
それを、値がセットされていなければ $brand を) $data['brand']
にセットしようとして

  $data['brand'] = $brand_etc || $brand ;
と書いたんです。


  || 演算子を通過した段階で boolean になってしまって、$brand の値の
いかんにかかわらず $data['brand'] には 1 が代入されてしまうのですね。

  改めて if 文で書きなおしました。面白い現象だったので報告致します。


========================================================================
     静中成友   塵裡偸閑  多而不厭   寡而為足   Koh-Jittoku  yori
--
  中川 恒雄 ( T.Nakagawa )         mailto:yaemon@alles.or.jp
                                   http://www.alles.or.jp/~yaemon/