如何将值设置为类的变量并显示它?

问题描述 投票:1回答:2

在我的项目中,我定义了一个Test类。

这个类只有__construct函数,这是Test类的代码:

<?php
namespace model;
public  class Test  {
private $db;
protected $fields;
public $variables;

public function __construct($data = array()) {
    if ($this->fields && $data) {
        foreach ($data as $k => $d) {
            if (!in_array($k, $this->fields)) {
                unset($data[$k]);
            }
        }
     }
    $this->variables  = $data;
}

}

现在我想使用这个类,这是我的html代码:

<body style="height:100%" >
<?php 
include "o1ws1v/class/model/Test.php";//include class file
$test_model = new \model\Test();

$test_model->xie="zuo";
echo    $test_model->xie;
?>
</body>

但不幸的是,它失败了。控制台中没有显示任何内容。

我测试过:

var_dump($test_model);

它也什么也没做。

我想为Test类的变量赋值并显示它。

谁能帮我?

php class
2个回答
2
投票

使用您的代码,您将收到错误

PHP Parse错误:语法错误,意外的'public'(T_PUBLIC),期待文件结束...

public类中删除Test关键字:

<?php

namespace model;

class Test  {
    private $db;
    protected $fields;
    public $variables;

    public function __construct($data = array()) {
        if ($this->fields && $data) {
            foreach ($data as $k => $d) {
                if (!in_array($k, $this->fields)) {
                    unset($data[$k]);
                }
            }
        }
        $this->variables  = $data;
    }

}

0
投票

我认为你必须将公共类更改为只有类,这部分代码应该正常工作。

<?php
namespace model;
class Test  {
private $db;
protected $fields;
public $variables;

public function __construct($data = array()) {
    if ($this->fields && $data) {
        foreach ($data as $k => $d) {
            if (!in_array($k, $this->fields)) {
                unset($data[$k]);
            }
        }
     }
    $this->variables  = $data;
}

}
© www.soinside.com 2019 - 2024. All rights reserved.