在php中引用类函数变量
我一直在查看PHP变量范围参考页面,似乎找不到明确的答案。我正在使用这个基本模型,我想调用一个类函数,并在类之外访问它的所有变量。我也希望避免使用全局声明,并尽可能以最有效的方式进行在php中引用类函数变量,php,scope,Php,Scope,我一直在查看PHP变量范围参考页面,似乎找不到明确的答案。我正在使用这个基本模型,我想调用一个类函数,并在类之外访问它的所有变量。我也希望避免使用全局声明,并尽可能以最有效的方式进行 class my_class() { function my_class_function() { $my_class_function_variable = 'juice'; return $my_class_function_variable; } } $
class my_class() {
function my_class_function() {
$my_class_function_variable = 'juice';
return $my_class_function_variable;
}
}
$class_instance = new my_class();
function display_juice() {
$class_instance::my_class_function();
$my_class_function_variable;
}
我缺少的东西有没有快速的答案?我没有收到任何输出或错误
编辑
当我在类中而不是在函数中声明以下内容时,我得到了一个语法错误
public $current_user = wp_get_current_user();
分析错误:语法错误,意外的“(”,应为“,”或“;”
您当前没有返回任何内容,您必须执行以下操作:
class my_class() {
function my_class_function() {
$my_class_function_variable = 'juice';
return $my_class_function_variable;
}
}
function display_juice() {
$class_instance = new my_class(); //Needs to be inside the function
$my_class_function_variable = $class_instance->my_class_function();
echo $my_class_function_variable;
}
display_juice();
如果要使用静态函数或变量,可以这样做,这样就无需创建my_类的实例:
class my_class() {
static function my_class_function() {
return 'juice';
}
}
function display_juice() {
$my_class_function_variable = my_class::my_class_function();
echo $my_class_function_variable;
}
display_juice();
您需要将my_class_function()设置为静态,您可以使用my_class::my_class_function()调用它 正如下面建议的,您需要返回“果汁”
return 'juice';
我将使您尝试访问的变量成为公共成员
class my_class {
public $my_class_function_variable = 'juice';
public function my_class_function() {
}
}
$class_instance = new my_class();
function display_juice() {
echo my_class->$my_class_function_variable;
}
display_juice();
您可以访问类中所有设置的变量(如果它们是公共的)。 如果它再次公开,您可以访问它的任何功能。。。 这里是一个例子。我有默认值“mydefault”。 我使用它,然后我改变它,再使用它
class my_class {
public $variable = "mydefault";
public function change_variable($value) {
$this->variable = $value;
}
}
function display_juice() {
$class = new my_class;
echo $class->variable; // echo default value - 'mydefault'
$class->change_variable('newvalue');
echo $class->variable; // echo default value - 'newvalue'
}
display_juice();
编辑
class my_class {
public $variable;
public function __construct() {
$this->variable = wp_get_current_user();
}
}
变量范围,请阅读所有相关内容…如果您想要一个类变量,请将其定义为公共类属性。错误太多了:静态调用、不返回、不是类成员、实例未传递给函数..哇..您的问题不完整且不清楚..请注意,在示例代码中,您不执行任何操作..1类(带有1个函数),第二个函数和一个$call_实例…我不知道您希望发生什么…顺便说一句,类的声明没有()…这不是一个function@Svetlio谢谢最后一点。我想从类函数中回显变量。这只是一个示例。我在类函数中定义了很多变量,我想从类外调用它们。请参阅我的编辑,我在将公共变量声明为全局WP函数时出错。您无法设置fu默认值的选项。添加1个构造函数来设置它..就像我的编辑..你能把条件放在_构造中吗?_构造是一个比其他所有函数都重要的函数..为什么不呢?我把构造名弄错了:)很抱歉,这看起来很奇怪,例如,如果你熟悉WP函数,有一个叫做get_post_meta($post->ID,'meta_key');如果我在u构造函数中声明,每个$post->ID的值都必须更改,因此我不确定为什么在调用类时设置变量。应该是在调用函数时,即display_juice,调用新变量,而不是在初始化时。