当前位置: 首页 > 知识库问答 >
问题:

不知道如何将变量传递给包含受保护函数的类的include

江阳夏
2023-03-14

我有一个页面,其中声明了一个UserID变量。例如...

$userid = 1;

与任何其他变量一样,这很容易在页面的其他地方调用。

但是,该页还包含一个包含类的文件的include,该文件包含一个受保护的函数。例如。

include('../dir/dir/whatever.php');

whatever.php的内容:

class Whatever
{
    protected function whatever()
    {
        echo $userid;
    }
}

但是,该函数无法获取$userid的值。

我对PHP不是很有经验,我想知道如何将函数传递给变量?我读过关于将变量声明为全局变量的文章,但这并不奏效,而且我听说这是一种糟糕的做法。

共有2个答案

祁星阑
2023-03-14

试试这个

session_start();
$_SESSION['userid']=$userid;
include('../dir/dir/whatever.php');

whatever.php文件

class Whatever
   {
       protected function whatever()
       {

       echo $_SESSION['userid'];

       }
   }
戚翼
2023-03-14

您的类尚未初始化,即使在包含文件之后也是如此。

如果要在whatever类中使用该函数,我建议将include('..');更改为require_once('..');

然后初始化Whateve类,使用:

$whatever = new Whatever();
$whatever->whatever($userid)

在您的任何类中,将函数更改为:

protected function whatever($userid) {
     echo $userid;
}

这样,您的方法/函数将找到userid,因为您将它解析到函数。

 类似资料:
  • 我试图从按钮类中的道具集中提取数字的值。然后在发现函数中呈现这个值。类正确显示了Number的值。但是,该函数不显示数字的任何值。 为了让它发挥作用,我已经花了一段时间来处理这个问题。但是我找不到任何解决我问题的办法。 没有错误消息。显示的预期结果:https://i.imgur.com/fr61SE0.png 实际显示结果:https://i.imgur.com/MRE0Lsj.png

  • 问题内容: 我有一个PHP函数,该函数需要可变数量的参数(使用和),但是我要传递给该函数的参数数量取决于数组的长度。有没有一种方法可以使用可变数量的参数来 调用 PHP函数? 问题答案: 如果参数在数组中,则该函数可能会对您有兴趣。 如果您要传递的参数数量取决于数组的长度,则可能意味着您可以将它们自己打包到数组中-并将其用于第二个参数。 然后,您传递给该数组的元素将作为不同的参数被函数接收。 例如

  • 所以我有两个函数都有相似的参数 现在,调用,但我如何在不修改的情况下传递变量参数列表中的变量(因为这在其他地方也已经使用了)。

  • 问题内容: 我正在使用TodoMVC应用程序来更好地使用AngularJS框架。在第14-16行的index.html中,您将看到以下内容: 注意 ng-submit 指令如何在不将 newTodo 模型作为参数传递的情况下调用 addTodo() 函数。 __ 不久之后,我在第19行的同一文件中遇到了以下代码: 您可以看到作者这次决定将 allChecked 模型传递给 markAll() 函数

  • 问题内容: doc中的示例: 但是,如果我需要使用这样的外部变量,该怎么办: 现在,我创建了新属性,并通过访问了它,但是还有其他更便捷的方法吗? 问题答案: 您可以使用关键字将必要的变量从父范围传递到闭包中。 例如: 在这里更多。 编辑(2019更新): PHP 7.4(将于2019年11月28日发布)引入了一种称为箭头函数的匿名函数的较短变体,这使得它的冗长程度有所降低。 使用PHP 7.4的示

  • 问题内容: 我有一个简单的删除按钮,该按钮可以接受字符串或数字,但不接受ng-model变量(不确定这是否是正确的术语)。 会产生: 但是,单击时什么也没有发生。如果我对变量进行硬编码,那么它就可以正常工作。我以为我不是在以“角度”方式做事,但是我不确定那是什么方式:) 这是我的控制器代码: 问题答案: 您无需在中使用大括号(),请尝试以下操作: