2010-12-06 4 views
0

단어로이 질문을 넣어 매우 좋지 않아 ....OOP PHP : 어떻게 변수 값을 할당합니까?

내가 그러나 내가하고 싶은,

$customer =    new Customer(); 
$customer->first_name = $value; 
$customer->update(); 

위의 first_name을 업데이트 일부 고객 정보를 업데이트하기 위해 API를 사용하고 있습니다 변수 이름은 다음과 같습니다.

$attribute =    'first_name';  
$customer =     new Customer(); 
$customer->$attribute =  $value; 
$customer->update();` 

그러면 Customer 클래스의 공용 변수를 참조합니다.

모든 속성에 대해 메소드 (설정자)를 쓰지 않으려합니다.

+3

위 내용을 시도해 보셨습니까? 작동합니까? 그렇다면 질문은 무엇입니까? – Gordon

+0

$ 고객 -> {$ 속성} = $ 값; –

+1

당신의 문제는 아마도 '$ attrubute'입니다. –

답변

2

모두 $obj->$attr$obj->{$attr}처럼 할 수 있습니다. 이 경우 {}은 중복됩니다. 그들은 $obj->{"123"}과 같은 것을 쓸 필요가있을 때 의미가 있습니다.

<?php 
$obj = new stdClass(); 
$attr = 'my_attr'; 
$obj->$attr = 'test'; 
var_dump($obj); 
?> 

코드 문제는 오타가있는 것입니다. 또는 오타가 문제의 텍스트에만있는 경우 아무런 문제가 없습니다.

+0

어떤 경우에는 중괄호가 적당할까요? 배열? – Haroldo

+1

@Haroldo 모호하거나 구문이 허용되지 않는 경우. 전의. '$ obj-> $ arr [3]'또는'$ obj-> { "123"}'대신'$ obj -> {$ arr [3]}' –

0

동일한 방식으로 작동합니다

$attr = 'my_attr'; 
$obj->{$attr}; 
+1

전에 중괄호없이 실제로 작동하지 않았습니다. – Fluffy