[PHP-users 402] Re: PHP4とPHP3

Naofumi Kondoh php-users@php.gr.jp
Fri, 29 Jun 2001 15:00:48 +0900


ソフト工房の近藤です。

Shinnosuke Tsunogae wrote:
> 
> るみね@調布です。

> PHP4はPHP3の継承(?)と受け止めているので、プログラムとかも現行のまま
> でも問題ないと思っているのですが
。。。略。。。。
> ですので、話が漠然となってしまうのですが、移行する際に「この点を気をつければ
> !」
> みたいな意見があったら、

一般論ですが version up でトラブルが生じる可能性は
あります。業務に使用していて、現在の機能で問題がな
い場合は、無用な version up はやらないですね。
逆に、セキュリティー上の問題があれば即刻 version up。

るみね@調布 さんの質問ですが、常識的なはなしですが、
下記 URL と PHP4 のドキュメントをよく読んで決めれば
いいと思います。日本語自動変換のあたりがポイントかな。

http://www.php.gr.jp/php/php4/

PHP3 → PHP4 は、100% アッパーコンパチブルではない
ので、相違点を十分承知しておく必要があります。
ただ、--versioning で ./configure すれば、DSO 版で
php3, php4 両方使えますので、徐々に php4 にかえる
とか、新しいプロジェクトから php4 にするなど、PHP3
と PHP4 を両方使えるので便利です。(注) DSO 版で、
PHP3,PHP4 両方とも --versioning で configure の場合。

最後に、私がちょっとつまずいた点について。

<?php
$foo = 'HogeHoge';
function hoge() {
   global $foo;
   unset($foo);
   $foo='bar';
}
function hoge2(){
   global $foo;
   echo $foo . "<br>";
}
hoge();
hoge2();
?>
とすると、PHP3 では、bar と表示されるのに、
PHP4 では、HogeHoge 表示されます。unset で、global 変数
との関係が完全に断たれてしまい、そのあとで、$foo に代入
しても global 変数への代入にはなりませんでした。

他にも細いことはあるかもしれません。

機能という点では、PHP4 を使うと、もう PHP3 に戻る気に
はなれません。Here Document, 添字付き変数の文字列内
展開とか foreach とか、便利な機能が一杯です。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文   Email:  nkon@shonan.ne.jp 
           PostgreSQL 汎用DB検索ツール デモ  
      http://www.softkoubou.co.jp/cslweb/index.php3
 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/