요즘 내가 자신의 고객을위한 PHP 프레임 워크를 개발하고있어. 내 응용 프로그램에서 $ instance->propertyName을 매개 변수로 전달하고 싶습니다. 하지만 $ instance->propertyName 값이 필요 없습니다. propertyName 부분 만 문자열 값으로 사용하고 싶습니다. propertyName을 문자열로 가져올 수 있습니까? 제발 도와주세요 ...메서드 매개 변수로 PHP 인스턴스 속성 이름 문자열로
0
A
답변
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
관련 문제
- 1. 매개 변수로 인스턴스 이름
- 2. 메서드 매개 변수로 선택기 이름 전달
- 3. 메서드 매개 변수로 inteface
- 4. 매개 변수로 열 이름
- 5. 매개 변수로 속성? C#
- 6. 인스턴스 변수로 배열을 매개 변수로 전달했습니다.
- 7. 일반 메서드 매개 변수로 사용하기
- 8. asp.net 다른 메서드에 매개 변수로 메서드 이름 전달
- 9. 강력한 형식의 속성 이름을 매개 변수로 사용하는 메서드
- 10. 메서드 클래스 속성을 매개 변수로 사용하는 팩터
- 11. 일반 매개 변수를 메서드 매개 변수로 사용
- 12. 일반 매개 변수를 메서드 매개 변수로 전달
- 13. 메서드 참조 매개 변수로 참조 매개 변수
- 14. 도우미 메서드 설정 인스턴스 변수로 반환 값
- 15. PHP에서 메서드 이름을 매개 변수로 전달하는 방법
- 16. C++ 메서드 이름을 템플릿 매개 변수로 사용
- 17. PHP 예약 메서드 이름
- 18. 속성 (PHP 마법 메서드)
- 19. PHP : 매개 변수로 URL
- 20. 매개 변수로 전달 바인딩 이름
- 21. 일반 매개 변수로 속성 유형
- 22. 사용자가 인스턴스 이름을 문자열로 입력 할 때 인스턴스 메서드 호출
- 23. glob를 파일 이름 매개 변수로 사용하기
- 24. 문자열을 월 이름 매개 변수로 사용하는 방법
- 25. PHP 클래스 속성 이름
- 26. 실행중인 작업을 매개 변수로 문자열로 채우기
- 27. C# 메서드 이름을 매개 변수화하여 변수로 전달
- 28. 파이썬 인스턴스 변수를 기본 매개 변수로 사용
- 29. 클래스 인스턴스 변수를 매개 변수로 전달
- 30. 웹 서비스 메서드 매개 변수
'$ foo = $ obj-> foo; echo $ foo;'멋지게 되려면'$ foo & $ obj-> foo'를 할 수 있으므로'$ obj-> foo'를 변경할 때마다'$ foo'가 업데이트됩니다. –
잘 모름 그가 의미하는 바는,하지만 나는 그것이 그럴 것이라고 생각하지 않는다. $ instance -> $ variablePropertyName을 사용하고 싶습니까? 또는 $ instance-> propertyName을 "propertyName"문자열을 포함하는 변수로 $ propertyName으로 변환한다는 의미입니까? –
고맙습니다. 그러나이 문제는 해결되지 않았습니다. 나는 그것을 시도했지만 결과는 내 화면에 0입니다. – ireaf