【问题标题】:Include and class PHP包含和分类 PHP
【发布时间】:2015-03-27 16:59:48
【问题描述】:

伙计们,为什么 php 不读取我的类文件?我有这个结构:

  • home.php
  • stamp.php
  • 类/class.stamp.php
  • 类/class.text.php

home.php

<?php

echo "hello i'm the home page";
include 'class/class.stamp.php'
$stamp = new Stamp();

include 'class/class.text.php';

?>

class.text.php

<?php

$stamp->something('hello yes it is');

?>

class.stamp.php

<?php

class Stamp {
  public function something($text);
      echo $text;
  }
}

?>

结果?没有!它说:

致命错误:在 /bla/bla/bla/ 中的非对象上调用成员函数。

但如果我这样做,它会起作用!

home.php

<?php

echo "hello i'm the home page";    
include 'class/class.text.php';

?>

class.text.php

<?php

include 'class.stamp.php'
$stamp = new Stamp();
$stamp->something('hello yes it is');

?>

class.stamp.php

<?php

class Stamp {
  public function something($text) {
      echo $text;
  }
}

?>

但是我不需要那个,请大家帮帮我:(

【问题讨论】:

  • include 'class.text.php'; 但正如你所写,它在目录中:class
  • 包含的文件与您正在加载的第一个脚本(您访问的页面)相关。因此,如果您正在加载home.php,要获取需要指定class 目录的类。即使您加载包含class/class.stamp.php 的主页,其中包括class.text.phpstamp 需要指定类文件夹,因为它与访问的页面 home.php 相关。
  • 对不起,我的错误,我现在更新代码。但问题仍然存在。
  • @RavenJe 1. include 'class/class.stamp.php' public function something($text); {
  • 是的...对不起,这是一个示例代码,我错过了一些东西,现在我再次编辑...问题仍然一样,抱歉。

标签: php class oop include


【解决方案1】:

检查问题是否与目录有关。

您说它适用于 class.stamp.php,但不应该是 class/class.stamp.php 吗?事情是这样的,如果你的主页位于某个文件夹中,那么在同一个文件夹位置你应该有文件夹类,与你的 Home.php 文件相邻。

我也遇到过对象未实例化的问题,因此请确保将其包含在每个范围内。为了帮助您发现错误,请使用

require "class/class.stamp.php";//Throws an error if it can't find the file.
require_once "class/class.stamp.php";//Bad practice

如果 require 不能帮助您解决它,请发布所有内容。

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 2013-10-17
    • 2013-08-29
    • 1970-01-01
    • 2019-07-03
    • 2015-09-28
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多