重大なエラー: 名前がすでに使用されているため、関数 Demo2\test を宣言できません。
王先生
王先生 2019-10-18 16:53:44
0
13
1562

先生と同じコード、エラー:

致命的エラー: 名前がすでに E:\wwwroot\phpbase\object\namespace\test2.php で使用されているため、関数 Demo2\test を宣言できません5 行目

#test1 コード:

<?php

namespace Demo1;

function test($a,$b)

{

return $a*$b;

}

?>

test2 コード:

<?php

namespace Demo2;

require('test1.php');

use function Demo1\test;

function test($a,$b) )

{

return $a $b;

}

echo test(4,5) ;//修飾されていない名前空間

echo "<hr>";

echo test(4,5);

?>


王先生
王先生

全員に返信(10)
王先生

お兄さん、とても勉強家ですね!

いいねを押す +0
老老宋

###私は知らない###

いいねを押す +0
老老宋

Screenshot_6.png最終結果は 9

です
いいねを押す +0
老老宋

ssss.pngtest2.php ファイル

いいねを押す +0
老老宋

666666.pngtest1.php ファイル

いいねを押す +0
  • 返事 実際、これはコールの位置を調整することで解決することもできます(コールの前に配置し、すべての紹介文を一緒にしないでください)。他の解決策もあります。同じ操作と同じコードに興味があるだけです。先生の解決策は機能しますが、私の解決策は機能しません。
    王先生 著者 2019-10-18 18:53:21
老老宋

test1.php と test2.php は、異なる Demo1 フォルダーと Demo2 フォルダーに配置されます

いいねを押す +0
  • 返事 2つのファイルに分けて入れてみました
    王先生 著者 2019-10-18 18:50:01
老老宋

関数 Demo1\test を使用します; この行を削除するだけです

いいねを押す +0
  • 返事 必要なのは、名前空間を通じて関数をインポートすることですが、それを削除することに何の意味があるのでしょうか?
    王先生 著者 2019-10-18 18:30:33
王先生

先生のコードは、このような名前の重複を解決するためのもので、彼のデモは間違っていませんが、同じコードを使用すると間違ってしまいます。

いいねを押す +0
老老宋

test2自体にテストメソッドがあり、導入したtest1にもテストメソッドがあります

同じ.php内に同じメソッドが存在すると、上記のエラーが発生します

http://php.wyscdz .com

いいねを押す +0
王先生

上記のエラーは、PHP バージョンが 7.0.12 であることを示しています。

5.6.27 に戻すと、次のエラーが報告されます:

致命的エラー: 未定義関数の呼び出しデモ1\test()

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!