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

问题描述:

我有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

将它传递给'__contruct($ var)'并将其写入私有变量。或者写一个setter,然后调用_after_构造 – Jeff

使用此__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'; 
     } 


    } 

} 

?> 
+0

谢谢,我将使用变量而不是'__FILE__',但该原理适用于我:) – bigdaveygeorge

+0

@bigdaveygeorge欢迎.. :) –