【发布时间】:2017-05-06 18:49:54
【问题描述】:
我快速浏览了一些与我类似的问题,但没有一个答案完全触及我遇到的问题。
我有两个文件。 product.php 和 index.php。 Product.php 定义了产品类,我只是使用 index.php 作为页面来输出变量。理想情况下,这将用于在将来输出来自不同类的对象。
product.php
class Product{
public $var = "a default value";
public function __construct($var){
$var = $var;
}
public function displayVar(){
echo $this->var;
}
}
index.php(都被php标签包围)
require_once("product.php");
$product = new Product();
echo $product->var;
我尝试了包含文件的不同方法(require、include、include_once)。我不确定这是否是问题所在。
我遇到的问题是 $product->var 没有输出。相反,我收到以下错误:
Notice: Undefined property: Product::$var in C:\xampp\htdocs\FurnitureWebsite\index.php on line 21
我不完全确定为什么它考虑这个变量未定义。我查看了关于类和属性的 PHP 文档,但没有一个真正看起来像答案的东西。
最后一点:我用 index.php 中定义的类尝试了这个,它工作得很好。这让我觉得我的文件路径可能有问题,但是文件名拼写正确,并且文件在同一个目录中,所以我不太确定。
【问题讨论】:
-
$this->var = $var;更改值绑定 -
附带说明,让公共 getter
displayVar回显公共属性是没有意义的。由于它是公开的,因此您可以直接访问它。或者,如果您想通过显式 getter 限制对该属性的访问,请将属性的可见性更改为受保护或私有。
标签: php class oop properties