[PHP-users 5820] Re: PHP 4.0 / 4.1 の isset() の相違

Yasuo Ohgaki php-users@php.gr.jp
Sun, 03 Mar 2002 11:50:51 +0900


> 細いことですが、 $arr['foo']['bar'] という要素は
> 定義されていないので、どのような文字であれ、文字
> を指すこと自体が間違いです。 

PHPではNULL String、FALSE、0、NULLに自動変換します。
(type juggling)

このため、論理値のtransitivityが保てなくなる場合があるので、
注意が必要になる場合がまれにあります。

> PHP だと未定義文字列/要素は、空文字( "" )になるの
> が通常でしょうか。

文字列コンテクストの場合のcatができるように、未定義の文字列は
E_NOTICEエラーを発生させ、NULL Stringに変換されます。

<?php

$str1 = 'ABC';

$str2 = $str . $str1; // 'ABC'

?>

PHPではかなりいい加減(?)なプログラミングが許されていますが、
変数の初期化の省略、省略にすると不明瞭になるオプション値(PostgreSQL
のコネクション等)などはすべて明確に定義する事をお奨めします。
-- 
Yasuo Ohgaki
yohgaki@dd.iij4u.or.jp

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/