平成30/ 2018-10-21 05:31
PHP/5.2.1 から 5.3.3 にバージョンアップと問題

$xxx =& new HOGE();
この記述でエラーでた。正しくは、
$xxx = new HOGE();
php5では、classの代入が即ち、参照渡しなので、エラーの記述だと2重に参照渡ししようとしているとのこと。


$hoge = split(",", $hoge);
// split()は推奨されないのでエラー。
正しくは以下。
$hoge = explode(",", $hoge);

if(
strlen($hoge)
){
}
//
引数が配列のときに、5.3.3だとワーニングになり、False扱いされる。
5.2.1だと、True扱い。
実際、検証してないが、この問題で挙動がおかしくなったので修正した。
修正も面倒で、こんな条件分岐。
if(
    (
    is_array($hoge) and implode("",$hoge)
    ) or
    (
    !is_array($hoge) and strlen($hoge)
    )
){
}
こんなのでも大丈夫かな。
if(
(is_array($hoge)?implode("",$hoge):strlen($hoge))
){
}