如何在类中实例化一个变量时将变量传递给另一个文件?
我有3个文件,其中2个文件实例化了我的myclass
类。要确定他们来自哪个文件,我想将一个变量传递给该类,然后能够输出不同的内容。如何在类中实例化一个变量时将变量传递给另一个文件?
<?php
// File 1
$file1variable = '1';
$go = new myclass($file1variable);
// File 2
$file2variable = '2';
$go = new myclass($file2variable);
// File3
class myclass {
public function __construct() {
$this->display();
}
public function display() {
if($file1variable) {
echo 'file1';
} elseif($file2variable) {
echo 'file2';
}
}
}
?>
我已经阅读了关于反射类和这篇文章PHP: How to instantiate a class with arguments from within another class,但似乎无法得到这个为我的方案工作。
我该如何做到这一点?
使用此__FILE__
这将给文件的完整路径作为您的类的输入。
为了得到只是文件名__FILE__
使用本explode("/", __FILE__)[count(explode("/", __FILE__))-1]
文件代替1:
<?php
$go = new myclass(__FILE__);
?>
文件2:
<?php
$go = new myclass(__FILE__);
文件3
<?php
class myclass {
public function __construct($filename) {
$this->display($filename);
}
public function display($filename) {
if($filename == 'some_x.php') {
echo 'file1';
} elseif($filename == 'some_y.php') {
echo 'file2';
}
}
}
?>
谢谢,我将使用变量而不是'__FILE__',但该原理适用于我:) – bigdaveygeorge
@bigdaveygeorge欢迎.. :) –
将它传递给'__contruct($ var)'并将其写入私有变量。或者写一个setter,然后调用_after_构造 – Jeff