2016-07-26 3 views
0

요즘 내가 자신의 고객을위한 PHP 프레임 워크를 개발하고있어. 내 응용 프로그램에서 $ instance->propertyName을 매개 변수로 전달하고 싶습니다. 하지만 $ instance->propertyName 값이 필요 없습니다. propertyName 부분 만 문자열 값으로 사용하고 싶습니다. propertyName을 문자열로 가져올 수 있습니까? 제발 도와주세요 ...메서드 매개 변수로 PHP 인스턴스 속성 이름 문자열로

+0

'$ foo = $ obj-> foo; echo $ foo;'멋지게 되려면'$ foo & $ obj-> foo'를 할 수 있으므로'$ obj-> foo'를 변경할 때마다'$ foo'가 업데이트됩니다. –

+0

잘 모름 그가 의미하는 바는,하지만 나는 그것이 그럴 것이라고 생각하지 않는다. $ instance -> $ variablePropertyName을 사용하고 싶습니까? 또는 $ instance-> propertyName을 "propertyName"문자열을 포함하는 변수로 $ propertyName으로 변환한다는 의미입니까? –

+0

고맙습니다. 그러나이 문제는 해결되지 않았습니다. 나는 그것을 시도했지만 결과는 내 화면에 0입니다. – ireaf

답변

0

이것을 달성하는 간단한 방법은 없습니다. 당신은 가치를 제공하는 변수의 이름에 대한 값 5 및 nothig에 대한 정보만을 얻을 것이다 둘 경우 기능이

function foo($bar) 
{ 
    //here you want to know the name of the variable that passing the value 
} 

$x = 5; 
$y = 5; 

foo($x); //here you want to know the name 'x' of the variable 
foo($y); //here you want to know the name 'y' of the variable 

뭔가를 알고 싶어요.

당신은 당신이 반환됩니다 setSomething 방법에 뭔가이

class someClass 
{ 
    public $someProperty; 
} 

class otherClass 
{ 
    public function setSomething($arg) 
    { 
     $trace = debug_backtrace(); 
     $vLine = file($trace[0]['file']); 
     $fLine = $vLine[$trace[0]['line'] - 1]; 
     preg_match("/(.*?)\((.*?)->(.*?)\)/i", $fLine, $match); 

     var_dump($match[3], $arg); 
    } 
} 

$t = new someClass(); 
$t->someProperty = 5; 

$o = new otherClass(); 
$o->setSomething($t->someProperty); 

var_dump 같은 매우 비효율적를 사용할 수있는 방법으로 값을 제공하는 변수의 이름을 알고있는 (또는 개체 속성)를 선택합니다 이름과 속성

문자열 (12) "someProperty"INT (5)

이 솔루션은이 게시물의 아이디어를 기반으로합니다. https://stackoverflow.com/a/404637/4662836

관련 문제