2014-07-10 4 views
0

오전,PHP는 2 개의 변수를 뺀다

나는 비교적 PHP에 익숙하지 않으며 필자는이 PHP 라인에 약간의 문제가있다. 정말 간단하고 무언가 빠질 수 있다는 것을 알고 있지만 코드의 레이아웃을 이해하지 못해서 작동하지 않습니다.

<td><?=isset($aActivity['sales'][$aNegtiator['nname']]['count']) 
-isset($aActivity['cancellations'][$aNegtiator['nname']]['count']) 

?$aActivity['sales'][$aNegtiator['nname']]['count'] 
-$aActivity['sales'][$aNegtiator['nname']]['count']:'0'?></td> 

그래서 나는 판매 사람이 수행 한 몇 카운트 업, 같은 사람이 수행 한 취소의 양이를 minusing 있지만 작동하지 않았습니다. 사전

+1

세계의 반 이상은 잘 아침입니다 :)! –

+1

고마워, 내 눈이 이제 피가 나다. 신을위한 공백을 넣으십시오. 코드는 인간을위한 것입니다 * 읽으십시오 *. – deceze

답변

2

에서

덕분에 두 isset 작업의 결과를 차감하고 있습니다. issettrue 또는 false을 반환합니다. 뺄셈에서, true1false0으로 간주합니다. 두 값이 모두 true이면 결과는 0이며 ?: 조건에서 false으로 표시됩니다. 하나의 값이 true 인 경우 결과는 1 또는 -1이며 모두 true입니다. 두 값이 모두 false이면 결과는 0/false입니다.

- 대신 &&을 입력하고 싶습니다. 그 코드는 무엇

isset($a, $b) ? $a - $b : 0 
+0

Deceze에게 감사드립니다. 나는 isset이 참/거짓 함수라는 것을 이해하지 못했습니다. 귀하의 답변은 정말 도움이됩니다. – Greylegface

0

:

isset($a) && isset($b) ? $a - $b : 0 

는 덧붙여이 단축 될 수 있는가? 복잡한 문을 작성하지 않도록 값을 표시하는 데는 짧은 태그를 사용해야합니다. 당신은 오히려 코드의 주된 문제는 2 isset의 뺄셈은

<td><?php 


if (isset($aActivity['sales'][$aNegtiator['nname']]['count']) && isset($aActivity['cancellations'][$aNegtiator['nname']]['count'])) { 
    echo $aActivity['sales'][$aNegtiator['nname']]['count'] -$aActivity['sales'][$aNegtiator['nname']]['count'] 
} 
else { 
    echo '0' 
}?></td> 

이러한 코드를 사용해야합니다. 둘 다 설정 되더라도 1-1이 0이되므로 위의 코드를 사용하고 대신 '& &'연산자를 사용해야합니다. 당신이 (최선의 선택이 무엇인지)를 표시 복잡한 PHP 코드를 혼합하지 않으려면

, 당신이해야 간단한 할 일 :

<?php 

$toDisplay = 0; 
    if (isset($aActivity['sales'][$aNegtiator['nname']]['count']) && isset($aActivity['cancellations'][$aNegtiator['nname']]['count'])) { 
     $toDisplay = $aActivity['sales'][$aNegtiator['nname']]['count'] -$aActivity['sales'][$aNegtiator['nname']]['count'] 
    } 
?> 

그리고 어딘가 나중에 코드에서 (당신이 값을 표시 할 위치) :

<td><?= $toDisplay; ?></td> 
+0

귀하의 답변 Macin을 주셔서 감사합니다, 나는 이러한 모든 대답을 PHP의 이해를 향상시키기 위해 사용할 수 있습니다. 내가 명성을 추가 할 수 있지만 나는이 포럼에 새로운 오전 :) – Greylegface

0

첫 번째 이유는 둘 다의 사본을 뺍니다. 모두가 다음에 어떤 값이있는 경우

isset($aActivity['sales'][$aNegtiator['nname']]['count'])-isset($aActivity['cancellations'][$aNegtiator['nname']]['count']) 

은 조건이 항상 0

$aActivity['sales'][$aNegtiator['nname']]['count']-$aActivity['sales'][$aNegtiator['nname']]['count'] 

을 줄 것이다 반향 원하는 결과를 만족하는 경우에도

0 두 변수가 동일 돌아갑니다

또한 PHP에서 짧은 태그가 활성화되어 있는지 확인하십시오.ini 파일

+0

그래, 내가 다른 isset에서 isset을 뺄 수 있다는 것을 이해하지 못했다. 나는 이것을하기의 적당한 방법의 확실하지 않았다, 지금이다. 고맙습니다 – Greylegface