【问题标题】:passing variable into class将变量传递给类
【发布时间】:2014-07-26 14:33:05
【问题描述】:

将变量传递给类 这是代码>>

require('password.php');
class Authorization
{

var $users = array(
    'admin' => $password,    // User 1

); //........

如何将 password.php 中声明的变量传递给 Authorization 类?

【问题讨论】:

  • 实例化类时,将值作为参数传递给构造函数,然后用它来设置属性
  • PHP/4 OOP 语法在 10 年前被更好的语法所取代。是时候习惯它了。此外,您的代码应触发错误消息:Parse error: syntax error, unexpected '$password' (T_VARIABLE) 如果您看不到它,您需要配置您的 PHP 环境以显示错误消息。跨度>
  • 谷歌素材:"Dependency Injection"
  • @pellmellism - 您不了解 OOP - 您不能将变量传递给类。您可以将变量传递给对象

标签: php oop


【解决方案1】:

你可以在类中设置变量,但你不能在没有构造函数的情况下传递给类本身:

class MyClass {
    $VarA = 0;

    function __construct($NewVarA = 0) {
        $this->VarA = $NewVarA;
    }
}

如果您不想使用构造函数,请考虑使用函数而不是类。

【讨论】:

  • 同名构造函数现已过时。而且,这段代码 sn-p 并不能真正帮助回答 OP 的问题。
  • @raidenace 甚至不知道它已经贬值,固定反映。
  • @DarkBee,Wobbles 已经为我解答了。
  • @DarkBee 从 5.3.3 开始,同名函数被视为普通函数,不再是构造函数。
  • 是的,刚刚看了文档,实际上也没有意识到这一点。谢谢你的信息:)
【解决方案2】:

我不是 100% 确定你在问什么,但我认为你的意思是:

require('password.php');

class Authorization
{
    function __construct($myVariable) {
        // do something
    }
}

// Now you can do this, where $someVariable is defined in password.php:
$foo = new Authorization($someVariable);

【讨论】:

  • 不要被原始代码所迷惑。请记住,您不能在方法之外编写任意代码;-)
  • @ÁlvaroG.Vicario 哎呀;甚至没有看那部分。谢谢。 :)
  • @EdCottrell - 唯一需要指出的是 $somevariable 可以在 password.php 中定义 ...
  • 我注意到这个问题以及所有答案都被否决了。我对@Wobbles 的回答投了反对票,但我提供了我的解释,当他更正了他的答案时,我为他删除了反对票。我讨厌人们在不发表评论的情况下投反对票!
  • @raidenace 不开玩笑。很烦人。
【解决方案3】:

类不是对象。它是对对象的描述。

说类苹果。苹果有一定的特点。需要创建一袋苹果。每个人都有一个密码(在你的情况下)。

请重新阅读有关面向对象编程的部分。

【讨论】:

  • 这看起来像评论,因为它不是答案。感谢您的尝试
猜你喜欢
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多