我有两个类文件分别是:1.class.php和2.class.php
1.class.php的代码:
<?php
class hello{
public function a(){
echo"hello";
}
}
?>
2.class.php的代码:
<?php
class hello2 extends hello{}
?>
我运行2.class.php时提示:Fatal error: Class 'hello' not found in D:\php\apache_2.2.14\htdocs\df\2.class.php on line 2
为什么我看视频教程上可以两个文件,可以继承呀,是不是我少配置了哪呀?(我这个两个文件只是做测试用的,没有任何意义)。

解决方案 »

  1.   

    <?php
    include '1.class.php';
    class hello2 extends hello{}
    ?>
      

  2.   

    比如说吧:我有一个文件叫action.class.php它里有一个类继承了另一个文件类。
    我在这个文件里面把要继承的类包含进来了。include('../../common/mysql.class.php');
    可是我还一个文件admin_global.php:它要包含上面的那个文件:include_once("common/action.class.php");运行admin_global.php这个文件的时候提示:
    Warning: include_once(../../common/mysql.class.php) [function.include-once]: failed to open stream: No such file or directory in D:\php\apache_2.2.14\htdocs\news\admin\common\action.class.php on line 2
    请问这个路径怎么弄呀,我看有的视频直接继承也没有错呀。
      

  3.   


    include_path
    http://ca3.php.net/manual/en/function.set-include-path.php

    autoload: 
    http://ca3.php.net/manual/en/function.spl-autoload.php
      

  4.   

    php中必须将其包含进来
    否则找不到
      

  5.   

    不是你的类问题
    是你还没了解 php 的文件包含路径这个问题建议你先去了解一下 php的包含路径,很多新手都会被折腾一翻。指的是多文件包含,这个路径要经过特别处理
      

  6.   

    如果楼主更想的是了解继续。
    请先把这两个文件写到一个文件下。毕竟在不同的时候关注不同的事。<?php
    class hello{
    public function a(){
    echo"hello";
    }
    }class hello2 extends hello{}$me = new hello2();
    $me->a();
      

  7.   

    比如说吧:我有一个文件叫action.class.php它里有一个类继承了另一个文件类。
    我在这个文件里面把要继承的类包含进来了。include('../../common/mysql.class.php');
    可是我还一个文件admin_global.php:它要包含上面的那个文件:include_once("common/action.class.php");运行admin_global.php这个文件的时候提示:
    Warning: include_once(../../common/mysql.class.php) [function.include-once]: failed to open stream: No such file or directory in D:\php\apache_2.2.14\htdocs\news\admin\common\action.class.php on line 2
      

  8.   

    failed to open stream: No such file or directory in
    不是说了包含的文件不存在?
    看看文件路径和文件名写错了没,除了这个没别的原因
      

  9.   

    建议你去多点了解 php 的 包含文件路径这个问题
      

  10.   

    不是这样的,你们没弄清我说是什么。
    你们包含文件的时候是用绝对路径还是相对路径?怎么弄。
    上面的那个图片是我的文件夹,我的错误是这样的:admin_global.php代码:
    <?php
    session_start();
    define("ROOT",set_include_path('./'.PATH_SEPARATOR.dirname(__FILE__)));
    include_once(ROOT."/common/mysql.class.php");
    include_once(ROOT."/configs/config.php");
    include_once("common/page.class.php");
    include_once("common/action.class.php");
    $db = new action($mydbhost, $mydbuser, $mydbpw, $mydbname,$mydbcharset);//数据库操作类
    $uid=$_SESSION[uid];
    $shell=$_SESSION[shell];
    ?>
    上面的这段代码出错提示为:
    Notice: Constant ROOT already defined in D:\php\apache_2.2.14\htdocs\news\admin\common\action.class.php on line 3我知道我可能是ROOT的问题,可是我不知道怎么改。最终还是路径问题,大家帮忙看看,这路径怎么弄。
    admin/common/action.class.php的代码:<?php
    //$ROOT=set_include_path('./'.PATH_SEPARATOR.dirname(__FILE__));
    define("ROOT",set_include_path('./'.PATH_SEPARATOR.dirname(__FILE__)));
    include_once(ROOT."/common/mysql.class.php");
    class action extends mysql{
    }
    ?>
      

  11.   

    Notice……我从来就没让它输出过……囧rz上面的Notice是说你的ROOT常量被重复定义了。
      

  12.   

    是不是需要设置php.ini文件中的include_path.对吗,怎么写路径。
      

  13.   

    我当然知道ROOT重复定义了,我目的是想知道这个路径怎么弄?