検索

ホームページ  >  に質問  >  本文

重大なエラー: 名前がすでに使用されているため、関数 Demo2\test を宣言できません。

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

致命的エラー: 名前がすでに 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);

?>


王先生王先生1893日前1595

全員に返信(13)返信します

  • 王先生

    王先生2019-10-19 09:42:11

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

    返事
    0
  • 老老宋

    老老宋2019-10-19 09:36:04

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

    返事
    0
  • 老老宋

    老老宋2019-10-18 18:51:17

    Screenshot_6.png最終結果は 9

    です

    返事
    0
  • 老老宋

    老老宋2019-10-18 18:50:36

    ssss.pngtest2.php ファイル

    返事
    0
  • 老老宋

    老老宋2019-10-18 18:49:49

    666666.pngtest1.php ファイル

    返事
    0
  • 王先生

    実際、これはコールの位置を調整することで解決することもできます(コールの前に配置し、すべての紹介文を一緒にしないでください)。他の解決策もあります。同じ操作と同じコードに興味があるだけです。先生の解決策は機能しますが、私の解決策は機能しません。

    王先生 · 2019-10-18 18:53:21
  • 老老宋

    老老宋2019-10-18 18:46:24

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

    返事
    0
  • 王先生

    2つのファイルに分けて入れてみました

    王先生 · 2019-10-18 18:50:01
  • 老老宋

    老老宋2019-10-18 18:27:59

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

    返事
    0
  • 王先生

    必要なのは、名前空間を通じて関数をインポートすることですが、それを削除することに何の意味があるのでしょうか?

    王先生 · 2019-10-18 18:30:33
  • 王先生

    王先生2019-10-18 18:12:30

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

    返事
    0
  • 老老宋

    老老宋2019-10-18 18:03:47

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

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

    http://php.wyscdz .com

    返事
    0
  • 王先生

    王先生2019-10-18 16:59:48

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

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

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

    返事
    0
  • キャンセル返事