无法从包含的php文件中调用函数

时间:2013-10-01 12:45:10

标签: php

想从包含的php调用函数。我这样做:

<?php
include 'http://localhost:9090/myapp-backend/login.php';
$lg = new Login();
$lg->login();
?>

的login.php:

<?php
class Login
{
    public function login () {  
        //*some code
    }
}

结束错误:

Fatal error: Class 'Login' not found in D:\xampp\htdocs\myapp\index.php on line 3

当我不在login.php中使用类只是一个函数时,我得到错误,该函数不存在。
怎么了?

3 个答案:

答案 0 :(得分:3)

远程文件的

include将仅包含 result (由远程服务器生成),而不包含代码的 source

在本地使用include(本地FS)获取来源 - 因为您指的是localhost

答案 1 :(得分:2)

为了确保它的跨平台兼容性(使用带有常量__DIR__的PHP 5),你可以使用更像这样的东西(尽管我也倾向于使用require_once这样的文件比包括)。

//assuming you're calling the include from the a file at the root of the web server
include realpath( __DIR__ . '/myapp-backend/login.php' );

//or using require_once
require_once realpath( __DIR__ . '/myapp-backend/login.php' );

尽管Windows对使用'/'或'\'作为目录分隔符非常轻率。

请参阅:http://php.net/manual/en/function.realpath.php

对于旧版本的PHP(具有__FILE__常量而不是__DIR__常量),您可以使用以下内容 - 但实际上,这不再是必需的:

require_once realpath( dirname( __FILE__ ) . '/myapp-backend/login.php' );

请参阅:http://uk3.php.net/manual/en/function.dirname.php

答案 2 :(得分:-1)

您必须使用系统中的路径,而不是虚拟目录。 E.g:

include 'C:/myapp-backend/login.php';