2011-12-28 2 views
12

다음과 같이하고 싶습니다. echo $myObject->value_$id 그러나 적절한 구문을 알지 못해서 가능한지 확실하지 않습니다.문자열 + 변수를 사용하여 개체 변수를 가져 오는 중

$id은 값 1을 가지고 있습니다. 결국, $myObject->value_1을 받고 싶지만 숫자 부분 (1)은 동적이어야합니다.

+1

가 왜 배열을 사용하지 않는? – omnidan

+0

'->' – simPod

+0

'$ myObject-> myArray [ "element"];'또는'$ myObject-> myArray [$ id];'를 사용하여 이것을 어떻게하는지 궁금합니다. 배열을 사용하는 것이 어쨌든 더 좋은 방법이라고 생각합니다. 그러나 정확히 무엇을하고 싶습니까? – omnidan

답변

23

이 기능은 variable properties라고 :

<?php 

$myObject = (object)NULL; 
$myObject->value_1 = 'I am value nr 1'; 

$id = 1; 
echo $myObject->{"value_$id"}; 
+0

개체에 NULL을 주조하기 전에 본적이 없어요 ^^ 흥미로운 생각 ;-) – Armin

+0

@Armin - 잠시 동안 StackOverflow 주위를 어슬렁 거니면 더 이상한 것을 볼 수 있습니다 :) –

+0

그게 내가 찾고 있던 코드입니다! – simPod

3
$name = "value_" . $id; 
echo $myObject->$name; 
+0

두 번째 줄에 변수와 문자열을 결합 할 수 없습니까? – simPod

4

이 작동 :

$variableName = 'value_whatever_1337'; 
echo $myObject->$variableName; 
+0

그리고 변수와 문자열을 두 번째 줄에 어떻게 든 결합 할 수 없습니까? – simPod

+0

코드를 명확하고 읽기 쉽게 유지하려는 경우 권장 방법이 아닙니다. – Armin

+0

좋아, 나는 그것에 대해 생각할 것이다. 감사합니다 – simPod

관련 문제