2011-02-06 18 views
1

PHP 4では、それが定義されています前にクラスを使用する場合は、このエラーを取得する:PHP 4 - 未定義のクラス名

Fatal error: Undefined class name 'foo' in...

私のコードは次のとおりです。

function do_stuff(){ 
    if(foo::what()) ... // this code is before the php file with the foo class is included  
} 

class foo{ 
    function what(){ 
    ... 
    } 
} 

do_stuff(); 

は、このために任意の回避策があります(あなたのスクリプトを使ってphp5にアップデートする人たちに伝えること以外に)?

+0

いいえ、なぜPHP 4を使用して、とにかくPHP 5.3.5 – Petah

+2

へのアップグレードを、私はたわごと – Petah

+0

Petahとして古いですWTFを意味する:時々あなた古い技術でちょうど立ち往生しています... – Mchl

答えて

1

あなたが代わりに使用することができますクラス/メソッドを実行時にチェックするのではなく、時間をコンパイルすることが原因となる

call_user_func(array('foo', 'what')); 

+0

それは醜いように見えます...私はこれも機能で起こることに気づきました。 PHP 4はとても遅くなっています:( – Alex

1

スクリプトの最初にrequire_once()というファイルにクラスを定義します。

1

php4の場合は、class_existsでクラスの存在をテストできます。だから、PHP5と互換性があるように、あなたはこの種のコード記述することができます。

<?php 
function __autoload($classname) { 
    include("classes/$classname.class.php"); 
} 

if (!class_exists('foo')) __autoload('foo'); 
関連する問題