是否可以在其他外部函数中使用一个变量的值:特殊情况

发布于 2024-11-23 18:18:44 字数 687 浏览 1 评论 0原文

我在 PHP 中有这样的东西:


- 主要功能
- 功能1
- 功能2

function1 和 function2 从 mainfunction 调用。我需要将 function1 中的变量值传递给 function2。它们不相关,所以我不能作为参数传递。

我尝试使用 $this->variable 但在 function2 中没有看到更改。

提前致谢。


在我使用的类定义中: var $piVarsList; 然后在 function1 中我写道: $piVarsList = $this->piVars;

当我使用 print_r($piVarsList); 在 function1 中调试时我看到 $this->piVars 数据,但是当我在 function2 中执行此操作时,我没有看到任何内容。


谢谢玻璃机器人。我遇到问题了。 function1 和 function2 中的代码呈现一个网页,因此当执行 function2 时,它处于代码的新调用中,并且 function1 永远不会被调用。

我尝试以不同的方式存储来自 function1 的数据,而不是在 URL 中传递参数,因为我使用的是缓存函数,并且如果 URL 中的参数不同,它会存储一个新页面。

I have something like this in PHP:

class
- mainfunction
- function1
- function2

function1 and function2 are called from mainfunction. I need a value of a variable in function1 to pass to function2. They are no related so I can't pass as parameters.

I tried with $this->variable but the changes are not seeing in function2.

Thanks in advance.


In the class definition I used: var $piVarsList;
Then in function1 I wrote: $piVarsList = $this->piVars;

When I debug in function1 using print_r($piVarsList); I see the $this->piVars data, but when I do that in function2 I don't see anything.


Thank you Glass Robot. I got the problem. The code in function1 and function2 render a web page so when the function2 is executed it is in new call of the code and function1 never is called.

I'm trying to store that data from the function1 in a different way instead of passing parameters in the URL because I'm using a cache function and it store a new page if the parameters in the URL are differents.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奶茶白久 2024-11-30 18:18:45

在您更新的问题中,您的问题似乎是您将局部变量分配给类变量的值。你需要反过来做:

class ClassName
{
    protected $a_variable;

    public function function1()
    {
        // $variable can only be seen inside the method function1
        $variable = 'stuff';
        $this->a_variable = $variable;

        // can also be written like this:
        //$this->a_variable = 'stuff';
    }

    public function function2()
    {
         echo $this->a_variable;
    }
}

In your updated question your problem seams to be that you are assigning a local variable to the value of a class variable. You need to do it the other way round:

class ClassName
{
    protected $a_variable;

    public function function1()
    {
        // $variable can only be seen inside the method function1
        $variable = 'stuff';
        $this->a_variable = $variable;

        // can also be written like this:
        //$this->a_variable = 'stuff';
    }

    public function function2()
    {
         echo $this->a_variable;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文