我有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的内容,但似乎无法让我的方案正常运行。
我怎样才能做到这一点?
答案 0 :(得分:1)
使用此__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';
}
}
}
?>