2011-12-06 6 views
2

PHP 클래스의 다른 파일에 정의 된 변수에 액세스하는 방법이 있는지 알고 싶습니다.클래스의 다른 파일에 정의 된 액세스 변수

예 :

file_01.php

<?php 
    $a = 42; 
?> 

file_02.php

<?php 
    require_once('file_01.php'); 

    class mnyClass 
    { 
     private $myVar; 

     function __construct($var = $a) 
     { 
      $this->myVar = $var; 
     } 

     function getVar() 
     { 
      return $this->var; 
     } 

     function setVar($var) 
     { 
      $this->myVar = $var; 
     } 
    } 
?> 

물론, 내 수업은 더 복잡하다. 내가 뭘하려고하는지 더 잘 이해하기 위해이 예제를 선택했습니다.)

감사합니다.

+0

우선, 귀하의 답변에 모두 감사드립니다. 사실, 연관 배열을 사용하여 응용 프로그램 기본값을 설정하려고했습니다. 'define()'메서드는 매개 변수로 배열을 사용하지 않습니다. 나는'$ GLOBALS' 변수를 알고 있지만 생성자 매개 변수에는 사용할 수 없습니다 :/그래서, 나는 $ GLOBALS를 사용하여 생성자에서 매개 변수에 NULL 테스트를 사용하도록 사임합니다. 호기심이없는 –

답변

3

당신 이 작업을 수행 할 수 없습니다

:이은 (는 하지 것이 좋습니다) 할 수

<?php 
    require_once('file_01.php'); 
    $mnyClass = new mnyClass($a);// the torch has been passed! 

    class mnyClass 
    { 
     private $myVar; 

     function __construct($var = null) 
     { 
      $this->myVar = $var; 
     } 

     function getVar() 
     { 
      return $this->var; 
     } 

     function setVar($var) 
     { 
      $this->myVar = $var; 
     } 
    } 
?> 

을 OR :

function __construct($var = $a) 
    { 
     $this->myVar = $var; 
    } 

은 무엇 당신이 할 수있는 것은 통과하다

function __construct($var = null) 
    { 
     if($var === null) $var = $GLOBALS['a']; //use global $a variable 
     $this->myVar = $var; 
    } 
+0

, 왜 그렇게 권장하지 않습니까? – Frank

+1

@Frank 전역 변수를 범위 지정할 수 없습니다. – Neal

1

일부 응용 프로그램의 기본값을 설정하는 것 소리. 그것은 상수로 다음을 정의하는 데 의미가 있습니다

file_01.php :

<?php 

require_once('file_01.php'); 

class myClass { 

    private $myVar; 

    function __construct($var = NULL) 
    { 
     global $a; 

     if($var == NULL) 
      $this->myVar = $a; 
     else 
      $this->myVar = $var; 
    } 
} 

?> 

I :

define('DEFAULT_VALUE_FOR_A', 42); 

file_02.php

class myClass 
{ 
    function __construct($var = DEFAULT_VALUE_FOR_A) { 
    } 
} 
0

마지막으로, 나는이 방법을 사용 내 변수 $a을 생성자에서 전역 변수로 선언하고 기본값을 내로 설정합니다. 10 ~ NULL 그리고 생성자가 매개 변수 ($ var == NULL)로 호출되었는지 확인하십시오.

관련 문제