2017-04-15 150 views
0

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

回答

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


    } 

} 

?> 
+0

謝謝,我將使用變量而不是'__FILE__',但該原理適用於我:) – bigdaveygeorge

+0

@bigdaveygeorge歡迎.. :) –

相關問題