[PHP-users 15717]switch()のcase判定

T.Miura macosx @ miurake.net
2003年 6月 6日 (金) 11:47:03 JST


はじめて投稿いたします。
三浦@さいたまと申します。

switchのcaseで判定するときに、
配列の添え字が"0"のときの挙動が良く分からないので
投稿させていただきました。

<ソース>
<?php
  $arr = array("0"=>"test0","1"=>"test1","example"=>"exam1");

  foreach($arr as $key => $val){
      switch($key){
        case "example":
            print $key." => ".$val."<br>\n";
            break;
        default:
            print "違うよ<br>\n";
            break;
      }
  }
?>
</ソース>

上記テストスクリプトを実行すると、

想定していた結果は

<結果>
違うよ
違うよ
example => exam1
</結果>

だったのですが、

<結果>
0 => test0
違うよ
example => exam1
</結果>

と表示されます。
これはどういう仕様なのでしょうか?

<環境>
Linux RedHat7.2
Apache 1.3.27(RPM)
PHP 4.3.1(ソースからコンパイル)

'./configure' 'i386-redhat-linux' '--prefix=/usr' '--exec-prefix=/usr' 
'--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' 
'--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' 
'--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' 
'--mandir=/usr/share/man' '--infodir=/usr/share/info' '--prefix=/usr' 
'--with-config-file-path=/etc' '--disable-debug' '--enable-pic' 
'--enable-inline-optimization' '--with-bz2' '--with-db3' '--with-curl' 
'--with-dom=/usr' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' 
'--with-png-dir=/usr' '--with-gd' '--enable-gd-native-ttf' '--with-ttf' 
'--with-gdbm' '--with-gettext' '--with-ncurses' '--with-gmp' '--with-iconv' 
'--with-jpeg-dir=/usr' '--with-mm' '--with-openssl' '--with-png' 
'--with-pspell' '--with-regex=system' '--with-xml' '--with-xmlrpc' 
'--with-expat-dir=/usr' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' 
'--enable-debugger' '--enable-ftp' '--enable-magic-quotes' 
'--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' 
'--enable-discard-path' '--enable-track-vars' '--enable-trans-sid' 
'--enable-wddx' '--without-oci8' '--with-imap=shared' '--with-imap-ssl' 
'--with-kerberos=/usr/kerberos' '--with-ldap=shared' 
'--with-mysql=shared,/usr' '--with-mcrypt' '--with-pgsql=shared' 
'--enable-memory-limit' '--enable-shmop' '--enable-versioning' 
'--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mcal' 
'--enable-zend-multibyte' '--enable-mbstring' '--enable-mbregex'  
'--enable-cli' '--with-apxs=/usr/sbin/apxs'
</環境>


PHP-users メーリングリストの案内