因此,我正在學習PHP,並開始使用非常基本的東西。無法從控制器調用index.php中的函數
我想從我的控制器文件夾中的文件調用一個函數,但它不會工作。
我已經成功地將任何輸入到URL欄中的東西都回顯出來,但它只是不會在我的另一個index.php文件中作爲控制器的一部分打印出消息,但當然會繼續回顯任何消息輸入URL。我錯過了什麼嗎?
所以這裏就是我已經坐在我的MVC文件夾之外這是一個index.php文件:
<?php
$url = $_GET['url'];
echo $url;
require 'controllers/' . $url . '.php';
$controller = new $url;
?>
,這裏是什麼,我在我的index.php文件,我想我的控制器文件夾中撥打:
<?php
class Index {
function __construct(){
echo 'We are in index';
}
}
?>
我的.htaccess文件看起來是這樣的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
您使用的是正確的大小寫嗎?函數名稱區分大小寫。另外linux是區分大小寫的,所以如果你在index.php中有Index類,它將會失敗。 – MiDri
對不起,你的意思是什麼?是的,我正在使用Linux。 –
你的htaccess文件說:「如果試圖訪問domain.com/Foo將其變爲domain.com/index.php?url=Foo在服務器上」好的url是不區分大小寫的,但是linux文件系統不是(你的php是什麼腳本正在訪問),因此索引和索引是文件系統上的不同位置。此外,函數/類是區分大小寫的,所以如果您命名文件index.php並將Index類放入其中,您的腳本將嘗試訪問錯誤的文件(如果嘗試了Index)或錯誤的類(如果嘗試索引) – MiDri