我正在使用WordPress插件并开始使用类来存储数据库设置等信息。然而,我遇到了一个问题。我无法输出或回显我的类中的变量。我创建了另一个测试插件来测试某些概念。这是我的测试插件中的插件代码,用于测试类:
<?php
/* WordPress Plugin */
// create class
class test
{
// Variable
public $HW = "HELLO WORLD!";
// Function to return variable
public function getHW()
{
return $this->HW;
}
// Function to set variable
public function setHW($newHW)
{
$this->HW = $newHW;
}
}
// Initiate class
$classObj = new test();
// Output data
function displayClass()
{
echo "hello world!";
echo $classObj->getHW();
}
// Add code to display in wordpress
add_shortcode('test_hw', 'displayClass');
?>
我知道wordpress部分的工作原因是“你好世界!”显示在页面上。但是我无法在类中获取要加载的变量。它要么阻止页面加载,要么不显示变量。我似乎无法找到错误。任何帮助将不胜感激。
我甚至尝试过这样的代码:
$classObj = new test();
$testHW = $classObj->getHW();
和
$classObj = new test();
$testHW = $classObj->HW;
这两个选项都不起作用。我在Fedora 19上使用PHP 5.5.7运行Apache 2.4.6。
答案 0 :(得分:0)
我认为函数中没有$ classObj,因为它在它之外被实例化。你可以试着让$ classObj全局化。它不是推荐的解决方案,但它似乎是WordPress中的常规解决方案。试试这段代码:
<?php
/* WordPress Plugin */
// create class
class test
{
// Variable
public $HW = "HELLO WORLD!";
// Function to return variable
public function getHW()
{
return $this->HW;
}
// Function to set variable
public function setHW($newHW)
{
$this->HW = $newHW;
}
}
// Initiate class
global $classObj;
$classObj = new test();
// Output data
function displayClass()
{
global $classObj;
echo "hello world!";
echo $classObj->getHW();
}
displayClass();
?>