채택완료

php 문법 질문입니다..

2018-04-30 (월) 11:10:05 1,958

<?php if($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_list.php' || $user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_insert.php' ) { ?>
내용 
<?}?>

이게 표현이 안됩니다..

모바일이면서 리스트가 아니거나 이거나

모바일이면서 작성페이지가 아니라면 내용이 나와라 인데 표현이 안됩니다..

어디가 틀린건가요? ㅠ.ㅠ

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트

<?php if($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_list.php' || $user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_insert.php' ) { ?>

두가지를 표현하실때

&& 와 || 를 동일선상에 놓으시면 

판단 자체가 애매해집니다.

이럴때는 ( ) 를 이용해서 묶어주시는게 좋습니다.

1. 모바일이면서 리스트가 아니거나

2. 모바일이면서 작성페이지가 아니라면

=> 다시 정리하면

1. 모바일이면서

2. 리스트와 작성페이지가 둘다 아닌경우

로 정리가 가능하죠

그러면

if($user_agent == "mobile" &&

      !( $_SERVER['PHP_SELF'] == '/fran/_list.php' || $_SERVER['PHP_SELF'] == '/fran/_insert.php' ) )

      {

의 형태로 정리가 가능합니다.

구현하신 방식대로도 정리할수있습니다.

if( ($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_list.php')

    || ($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_insert.php') ) {

( ) 의 위치를 잘 보시면 됩니다.

답변에 대한 댓글 2개

왜 두 페이지에 모두 나올까요....
한셋트만 하면 분명 안나오거든요 리스트만 설정햇을땐,
@humanb2box
설명드린내용으로 작동이 잘 안되시나요?
2018-04-30 (월) 11:16:36

<?php if( ($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_list.php') || ($user_agent == "mobile" && $_SERVER['PHP_SELF'] != '/fran/_insert.php') ) { ?>
내용 
<?}?>

해보세요

답변에 대한 댓글 1개

왜 두 페이지에 모두 나올까요...
한셋트만 하면 분명 안나오거든요 리스트만 설정햇을땐,

답변을 작성하려면 로그인이 필요합니다.