2011-04-19 4 views
0

코드 점화 장치를 사용하고 있습니다.PHP 가변 변수 및 배열 또는 직선 코드?

나는 게시물을 통해 전송되는 항목의 목록이 상당히 많습니다. 일부는 설정되고, 일부는 설정되지 않습니다.

동일한 문제에 접근하는 데는 두 가지 방법이 있습니다.

/*DYNAMIC CODING */ 

$fields = array(
    'field1', 'field2', 
    'field3', 'field4', 
    'field5', 'field6', 
    'fiel'... ...); 

foreach($fields as $f) 
    $$f = $this->input->post($f); 

/* OR LITERAL CODING? */ 

    $field1 = $this->input->post('field1'); 
    $field2 = $this->input->post('field2'); 
    $field3 = $this->input->post('field3'); 
    $field4 = $this->input->post('field4'); 
    $field5 = $this->input->post('field5'); 
    $field6 = $this->input->post('field6'); 
    $field7 = $this->... 

두 가지 방법 모두 효과적 일 수 있습니다. 제 질문은 다른 것을 사용하는 이유가 무엇입니까?

+0

내가 이해할 수없는 것은이 모든 변수를 만드는 것입니다. –

+0

@ Jani Hartikainen 글쎄, 그들은 게시물 요청에서 오는 ... 나는 당신이 게시물을 배열로 직접 작동하지 않는다고 가정해야합니까? ... – Hailwood

+0

@Jani Hartikainen은 fieldx가 실제로 fieldx라고 불리는데, 예를 들어'uid, uname, fname, lname, doby, dobm, dobd, ... '일 수 있습니다. 그렇지 않으면'for()'루프를 사용합니다. – Hailwood

답변

4

사용하는 동적 코딩을 선호하는 어떤 스타일,

그렇지 않은 경우 (예를 들어, 일식 등)를 사용하는 경우 문자 코드가 더 잘 작동 할 수 있습니다 그것은 내 개인적인 취향이기 때문입니다.

환경 설정이 마음에 들면 다른 사람이 코드를 편집하는 수단으로 코딩하는 경우 마음에 드는 것을 사용하고 선택하는 항목을 추가하십시오.

// a comment 

이 중 하나를 사용하면 프로세스 시간이 눈에 띄지 않는 밀리 초 단위로 달라 지지만 코드를 이해하고 올바르게 주석을 달아 주면 장기간에 걸쳐 밀리 초보다 많은 시간을 절약 할 수 있습니다! (동적 코드는 먼저 전체를 반복 한 다음 배열을 생성하고있다.)

1

당신의 IDE에서 작업 할 변수 자동 완성을 가져올 때 당신은 내 경험에

1

리터럴 코딩 작은 성능 이점을 가질 수있다

그러나 나에게를, 동적 코드는 훨씬 더 우리가 이야기하고 생각하는 방법 등이다 . 당신은 "오늘 식료품 가게에 갔다가 볼링장에 갔다가 친구 집에 갔다"고 말하면서 "오늘 나는 볼링장, 볼링장, 친구 집에 갔다."라고 말하지 않습니다. 게다가, 동적 코드는 훨씬 덜 상세해서 코드의 많은 라인을 검토해야한다는 어리석은 필요성을 줄여줍니다 (배열을 사용하면 패턴을 보았을 때 어떤 일이 생길지 알 수 있습니다). 어떻게 진행되고 있는지 즉시 볼 수 있습니다. 그리고 그것은 단지 더 좋아 보인다.

그러나 실제로 코드 작성 방법에 따라 다릅니다. 어떤 사람들은 내가 말하는 것과 완전히 동의하지 않을 것이고, 어떤 사람들은 동의 할 것입니다. 긴 반복적 인 선을 조금이라도 쉽게 호흡 할 수 있다면, 그것으로 가십시오. 그러나 무엇을 하든지 가장 중요한 코딩 실습을 잊지 마십시오. 주석.

+1

코드의 대부분이 정밀함을 통해 표현력이 풍부하다면 주석이 중요합니다. 짧은 함수와 잘 명명 된 변수. 주석 처리 된 코드'$ fields = array (...);를보기에는 꽤 화가났습니다. // 게시판에 들어가야 할 필드의 배열' – Anther

+0

Anther와 동의하지만 동적 코딩 (* cough * shortcuts * cough *)을 사용하면 이해할 수 있는지 확인하기 위해 Ziraks 포인트가 일반적이라고 생각합니다. 필요할 때 의견을 말하십시오. – Hailwood

+0

예, 완전히 단순한 예에서는 그렇지 않습니다. 그러나 다른 어떤 모범 사례와 마찬가지로 논평은 과학보다 예술에 가깝습니다. 의견을 올리는 방법과시기를 선택하는 것 자체가 의견을 갖는 것보다 훨씬 중요합니다. – Zirak

0

값의 배열과 루프가있는 첫 번째 옵션을 사용해야합니다. 그 변수는 나중에 언젠가는 변경 될 것이고 어레이 업데이트는 여러 줄의 코드를 업데이트하는 것보다 훨씬 간단하기 때문입니다.

나는 또한 당신이 길을 따라 어딘가에 그 필드 이름을 참조해야한다고 생각합니다.