簡體   English   中英

php“找不到類”和“無法重新聲明類”錯誤

[英]php “ Class not found” and “Cannot redeclare class” error

我正在使用Symfony2PHP對網站進行編程。

我在文件MainController.php定義了一個MainContent

而且我不得不在其他名為SecurityController.php控制器文件中使用此類

盡管這兩個類都在同一個名稱空間中定義,但它給出了錯誤:

Class 'MainContent' not found...

所以我試圖再次在SecurityController.php定義該類,但結果是:

Cannot redeclare class 'MainContent...'

我不明白,它是聲明還是沒有聲明。

實際上,我是C#程序員,也許由於這些語言之間的某些差異而感到困惑。

Symfony使用所謂的自動加載。 由於您的類未在其自己的文件中定義,因此按照自動加載的規則,無法加載它,因此找不到該類。 但是,如果定義了類,則腳本將被成功處理,包括定義該類的其他文件,並且將生成沖突(無法重新聲明類)。

可能的解決方案是:

  • 在一個地方(最好在控制器外部)定義類,並在需要時使用include_once / require_once
  • 使該類實際上是Symfony助手類,因此自動加載實際上有效
  • 每當您聲明課程時,請使用

    if(!class_exists('ClassName')) { class ClassName {} }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM