在类PHP中使用主文件的变量

时间:2019-10-03 11:47:42

标签: php wordpress class include

我有一个包含变量的主要php文件:

$data['username']

可正确返回用户名字符串。 在这个主文件中,我包括了一个类php文件:

require_once('class.php');

他们似乎联系得很好。 我的问题是:如何在类文件中使用$data['username']值?我需要执行一个if语句来检查其在该类中的值。

class.php

<?php

class myClass {
    function __construct() {

        if ( $data['username'] == 'johndoe'){   //$data['username'] is null here
          $this->data = 'YES';
        }else{
          $this->data = 'NO';
        }
    }
}

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到,如果我们知道您的主要php文件和类的外观,我们可以为您提供准确的答案。一种实现方法,从我的头顶开始:

// main.php
// Instantiate the class and set it's property
require_once('class.php');
$class = new myClass();
$class->username = $data['username'];
// Class.php
// In the class file you need to have a method
// that checks your username (might look different in your class):
class myClass {

    public $username = '';

    public function __construct() {}

    public function check_username() {
        if($this->username == 'yourvalue') {
            return 'Username is correct!';
        }
        else {
            return 'Username is invalid.';
        }
    }
}
// main.php
if($class->username == 'yourvalue') {
    echo 'Username is correct!';
}

// or
echo $class->check_username();

答案 1 :(得分:0)

如果变量是在调用require_once之前定义的,则可以使用global关键字来访问它。

main.php

<?php
$data = [];
require_once('class.php');

class.php

<?php
global $data;

...

如果您的class.php正在定义一个实际的类,那么我建议Lukasz回答。

根据您的更新,我将数据作为构造函数中的参数添加并在实例化时传递给它:

<?php
require_once('class.php');

$data = [];

new myClass($data);

调整构造函数使其具有签名__construct(array $data)