我有一个包含变量的主要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';
}
}
}
答案 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)