<?php 질문 드리겠읍니다 채택완료
안녕하세요 선배님들
</p>
<p><?php</p>
<p> if(!$userid) {</p>
<p>?> </p>
<p> <span><a href="form.php">회원가입</a> </span></p>
<p> <span> | </span></p>
<p> <span><a href="login_form.php">로그인</a></span></p>
<p><?php</p>
<p> } else {</p>
<p> $logged = $username."(".$userid.")";</p>
<p>?></p>
<p> <span><?=$logged?> </span></p>
<p> <span> | </span></p>
<p> <span><a href="logout.php">로그아웃</a> </span></p>
<p> <span> | </span></p>
<p> <span><a href="modify_form.php">정보수정</a></span></p>
<p><?php</p>
<p> }</p>
<p>?></p>
<p>
제 질문은 두가지입니다.
1. <?php ?>구문을 왜 저렇게 나눈건지 궁금합니다.<?php 열고 닫는 부분이 왜 if 함수 중괄호 다음에 오나요?
2.if문의 중괄호의 위치도 왜 저런지 궁금합니다.
답변 6개
html 표현에 대한 유지보수를 유연하게 하기 위해서 입니다.
개발자가 직접 html 을 만지지 않고 디자이너나 퍼블리셔에게 전달받아 작업한다고 하면
</p>
<p><?php
if(!$userid) {
echo '<span><a href="form.php">회원가입</a> </span>';
echo '<span> | </span>';
echo '<span><a href="login_form.php">로그인</a></span>';
} else {
$logged = $username."(".$userid.")";
echo '<span>' . $logged . ' </span>';
echo '<span> | </span>';
echo '<span><a href="logout.php">로그아웃</a> </span>';
echo '<span> | </span>';
echo '<span><a href="modify_form.php">정보수정</a></span>';
}
?></p>
<p>
또는
</p>
<p><?php
$outs = '';</p>
<p> if(!$userid) {
$outs .= '<span><a href="form.php">회원가입</a> </span>';
$outs .= '<span> | </span>';
$outs .= '<span><a href="login_form.php">로그인</a></span>';
} else {
$logged = $username."(".$userid.")";
$outs .= '<span>' . $logged . ' </span>';
$outs .= '<span> | </span>';
$outs .= '<span><a href="logout.php">로그아웃</a> </span>';
$outs .= '<span> | </span>';
$outs .= '<span><a href="modify_form.php">정보수정</a></span>';
}</p>
<p> echo $outs;
?></p>
<p>
이런 방식일 경우 프론트단 수정이 일어나게 되면 손이 그만큼 많이 갑니다.
추가로 히어닥이라는 문법도 있으니 필요할때 사용하면 유용합니다.
https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
</p>
<p><?php
$outs = <<<HEREDOC
<span><a href="form.php">회원가입</a> </span>
<span> | </span>
<span><a href="login_form.php">로그인</a></span>
HEREDOC;</p>
<p> echo $outs;
?></p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
설명은 다른 분들이 잘 해주셨고,
코드 가독성 위해 이런 방식 선호합니다.
</p>
<p><?php if(!$userid) {?>
<span><a href="form.php">회원가입</a> </span>
<span> | </span>
<span><a href="login_form.php">로그인</a></span>
<?php } else { ?>
<span><?php echo $username."(".$userid.")";?> </span>
<span> | </span>
<span><a href="logout.php">로그아웃</a> </span>
<span> | </span>
<span><a href="modify_form.php">정보수정</a></span>
<?php } ?>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
웹개발언어의 구조적인 차이를 이해하셔야 합니다.
서버사이드 스크립트와 (php / jsp / python 등등)
클라이언트사이드 스크립트(html / css / javascript)
의 처리시점이 다릅니다.
</p>
<p><?php </p>
<p>// php로직</p>
<p>if (true) {</p>
<p>?></p>
<p><html>.............</p>
<p><table></p>
<p><?php</p>
<p> } else {</p>
<p>?></p>
<p><html></p>
<p><?php </p>
<p> } </p>
<p>?></p>
<p> </p>
<p>// 인경우에</p>
<p> </p>
<p><?php 로 시작해서 ?></p>
<p>로 종료되는 지점은 PHP코드 서버에서 실행되는 내용 이고</p>
<p>?> 밖의 내용은 웹브라우저에서 실행되는 사항입니다.
위의 내용의 차이로 인해서 나오는 구조적인 모양이고
실제 처리는 다르게 작동하니..
<?php
?>
를 다 합쳐서 로직을 판단하시면됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인