我已经开始学习Zend Framework 2,并且我遇到了如何从类中输出变量内容的问题。
I wrote a simple class like below:
<?php
namespace example\Model;
class example{
protected $name = "sth";
public function show_name(){
echo $this-> name;
}
}
我在Module.php文件中实例化了它,如下所示:
public function getServiceConfig()
{
return array(
'factories' => array(
// 'example\Model\example' => function($sm){
'example' => function($sm){
// $example_ = new example();
$example_ = new example\Model\example();
return $example_;
},
),
);
}
我写了一个如下控制器:
namespace example\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class IndexController extends AbstractActionController
{
protected $show_example_;
public function indexAction()
{
return new ViewModel(array('example' => $this->show_example()));
// return array();
}
public function show_example()
{
if(!$this->show_example_){
$this->show_example_ = $sm->get('example\Model\exmaple');
}
return $this->show_example_;
}
我还写了一个index.phtml:
<?php
echo $example;
?>
我能请你帮我这个吗?
答案 0 :(得分:1)
你的班级不应该回应它应该归还的名字:
<?php
namespace example\Model;
class example{
protected $name = "sth";
public function show_name(){
return $this->name;
}
}
然后在你看来你会这样做:
<?php
echo $example->show_name(); // outputs sth
?>
因为$example
是您班级的一个实例&#34;示例&#34;其中包含方法show_name
,后者又返回值&#34; sth&#34;这将由您的视图文件
答案 1 :(得分:0)
我认为问题出在您的控制器中:
public function show_example()
{
if(!$this->show_example_){
$this->show_example_ = $sm->get('example\Model\exmaple');
}
return $this->show_example_;
}
它应该是:
public function show_example()
{
if(!$this->show_example_){
$this->show_example_ = $sm->get('example\Model\example');
}
return $this->show_example_;
}
那么错误信息是什么?
答案 2 :(得分:0)
感谢您的回答,但您建议我更换控制器的控制器与我写的一样。我可以请你再看看一次吗?
在error.log中有以下信息:
PHP Notice: Undefined variable: example_ in /var/www/html/zf2-tutorial/module/example/view/example/index/index.phtml on line 3, referer: http://localhost/zf2-tutorial/module/example/view/example/index/
和
PHP Fatal error: Call to a member function show_name() on a non-object in /var/www/html/zf2-tutorial/module/example/view/example/index/index.phtml on line 3, referer: http://localhost/zf2-tutorial/module/example/view/example/index/