致命錯誤:無法宣告函數 Demo2\test,因為該名稱已在使用中
王先生
王先生 2019-10-18 16:53:44
0
13
1420

和老師一樣的程式碼,報錯:

Fatal error: Cannot declare function Demo2\test because the name is already in use in E:\wwwroot\phpbase\object\namespace\test2.php on line 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)
老老宋

666666.pngtest1.php 檔案

  • 回覆 其實把呼叫的位置調整之下也是可以解決的(哪裡呼叫就放在那個前面,不要把所有引入的都放一起)。還有其他解決方案,我只是好奇一樣的操作,一樣的程式碼,老師的可以,我的不行
    王先生 作者 2019-10-18 18:53:21
老老宋

test1.php 和 test2.php 是放在不同的 Demo1 和 Demo2 資料夾中

  • 回覆 我是放在兩個文件中的
    王先生 作者 2019-10-18 18:50:01
老老宋

use function Demo1\test;  這一行去掉 就可以了

  • 回覆 要的就是透過命名空間導入函數,去掉還有啥意義
    王先生 作者 2019-10-18 18:30:33
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!