2017-11-29 7 views
2

私はPHPスクリプトの本体で使用する限り、うまく動作するサードパーティのクラスを使用しています。 mainから呼び出された関数でこの関数を使用しようとすると、「PHP致命的なエラーが発生します:Class 'RouterOS \ Util' not found error」というエラーが発生します。クラスで使用できるように関数で何をする必要がありますか?phpクラスを関数で利用できるようにするには

<?php 
require_once '/usr/local/sbrc/MTAPI/vendor/autoload.php'; 
... 
    GetNextRouter($loginData[0]['User'], $loginData[0]['Password'], $firstAddress[0]['IPAddress']); 
... 
} 
function GetNextRouter($UserID, $Pass, $Address) { 
     $util = new RouterOS\Util($client = new RouterOS\Client($Address, $UserID, $Pass)); 
... 
} 

エラーは$ util = new RouterOS \ Util行で発生します。

+0

名前空間に呼び出しスクリプトがありますか? –

+0

先頭にバックスラッシュを付けずに 'new RouterOS \ Util()'を呼び出すので、現在の名前空間を参照しています。したがって、あなたの関数があなたが定義した別の名前空間の中にある場合、 'RouterOS \ Util'は実際には' YourNamespace \ RouterOS \ Util'を参照します。この場合、 'new \ RouterOS \ Util()'に先行する黒スラッシュを単に使用することができます。これにより、クラス名がルート名前空間に固定されます。 –

+0

関数内にecho namespace定数を置き、グローバルにいるかどうかを確認してください –

答えて

0

を追加すると、PEAR2 \ Net \ RouterOSが使用されます。 私の問題を解決しました

関連する問題