2012-01-13 5 views
2

변수가 있습니다 (예 : $ total1). 예를 들어, 데이터베이스의 값이 12입니다.뺄셈 전에 변수가 있는지 확인하는 가장 좋은 방법은 무엇입니까?

이제 SQL 쿼리를 수행하고 테이블에서 숫자를 가져옵니다. 예를 들어 $ subtraction1 = 5이지만 while 루프에 있으므로 두 번째로 $ subtraction1 = 10 또는 이와 비슷한 값이 될 수 있습니다. while 루프에서 매번 $ subtraction_total 변수는 $ subtraction_total1 + $ subtraction1이 될 것입니다. 왜냐하면 페이지 하단에서 $ total 빼기 $ subtraction_total1을 표시하기를 원하기 때문입니다.

while 회 돌이에서 처음으로 $ subtraction_total이 이미 존재하는지 확인해야합니다. 나는 그것을 할 수있는 옵션을 알고 있지만 더 짧은 방법이 있습니까?

옵션 1은 while 루프 앞에 변수 $ subtraction_total1을 정의하는 것입니다. 물론, 단지 옵션 1을 수행합니다 :

지금
(!isset($total_subtraction1)){$total_subtraction1=0;}$total_subtraction1=$total1-$subtraction1; 

당신이 생각 :

옵션 2는이 작업을 수행하는 것입니다 (1 개) 변수를 정의하지만, 약 15 변수이며 짧은이 있다면 난 그냥 궁금 해서요 방법 ;-)

당신이 나를 이해 희망, 내 영어 ;-)

답변

3

을 정의하고 모든 변수 을 초기화 한 후으로 초기화하십시오. 나는 옵션 1이 그것으로부터 논리적으로 따를 것이라고 생각한다.

짧거나 빠르거나 까다로운 코드를 작성하지 마십시오. 읽고 유지하기 쉬운 코드를 작성하십시오.

+0

읽기 쉽고 유지할 수있는 코드와 짧고 간결한 코드 사이의 평형을 찾는 것이 좋습니다. P – Kieran

2

나는 확실히 루프 전에 변수 (들)을 정의 옹호 것입니다 매우 좋지 않다. 동일한 기능을 프리 루프로 구현할 수 있다면 루프 내에서 반복적으로 isset (또는 다른 기능)을 반복적으로 호출하는 것은 낭비입니다.

루프 전에 각 변수를 명시 적으로 선언하지 않고 많은 수의 변수를 정의하려는 경우 listdocs을 시도하거나 프로그래밍 방식으로 루프에서 변수를 만들 수 있습니다.

1
$sub_total = 0; 
while ($sub = mysql_get_row(...)) { 
    $sub_total += $sub; 
} 

당신이 (좋은 연습과 좋은 성능 현명한 인), 그리고 당신이 MySQL의에서 어떤 결과가없는 경우, $의 SUB_TOTAL가 있다는 추가적인 장점이있는 모든 반복에 다시 같은 코드를 실행하지 않는이 방법 기본값으로 정의됩니다.

관련 문제