如何在类实例化一个文件期间将变量传递给另一个文件?

时间:2017-04-15 09:45:40

标签: php class oop variables

我有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的内容,但似乎无法让我的方案正常运行。

我怎样才能做到这一点?

1 个答案:

答案 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';
        }


    }

}

?>