我有两个类文件分别是: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.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
为什么我看视频教程上可以两个文件,可以继承呀,是不是我少配置了哪呀?(我这个两个文件只是做测试用的,没有任何意义)。
include '1.class.php';
class hello2 extends hello{}
?>
我在这个文件里面把要继承的类包含进来了。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
请问这个路径怎么弄呀,我看有的视频直接继承也没有错呀。
include_path
http://ca3.php.net/manual/en/function.set-include-path.php
和
autoload:
http://ca3.php.net/manual/en/function.spl-autoload.php
否则找不到
是你还没了解 php 的文件包含路径这个问题建议你先去了解一下 php的包含路径,很多新手都会被折腾一翻。指的是多文件包含,这个路径要经过特别处理
请先把这两个文件写到一个文件下。毕竟在不同的时候关注不同的事。<?php
class hello{
public function a(){
echo"hello";
}
}class hello2 extends hello{}$me = new hello2();
$me->a();
我在这个文件里面把要继承的类包含进来了。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
不是说了包含的文件不存在?
看看文件路径和文件名写错了没,除了这个没别的原因
你们包含文件的时候是用绝对路径还是相对路径?怎么弄。
上面的那个图片是我的文件夹,我的错误是这样的: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{
}
?>