2014-04-12 3 views
-5

다른 문제를 인쇄합니다. 나는 CMS를 만들고있어 로그인 링크를 사라지게하고 싶습니다. 그래서 내 adminCP에서 구성 할 수 있습니다. "스위치를 넘기면"내 configfunctions.php가 $login을 true로 변경합니다. 나는 다른 PHP을 또한 때,사이트는 모든 PHP를 사용하지 않고

<?php if($loginenabled = true) { '<li><a href="sample-login.html" class="login"><span class="mmLogin">Login</span></a></li>' }; ?>

는하지만 내 사이트가 문자 그대로 모든 PHP를 인쇄 :

는 내가 뭘를 사용합니다.

Home, About us, <?php if($loginenabled = true) { 'login' }; ?>

사람이 그것을 해결하는 방법을 알고 있나요 : 그래서 내 사이트처럼 보인다?

웨슬리

+0

'something.html'을 (를) 편집하는 파일 이름이 있습니까? 그렇다면 그것이 PHP로 처리되지 않은 이유입니다. – AD7six

+1

상관 없지만 if ($ loginenabled = true)는 할당 연산자 '='를 사용하고 '=='또는 '==='연산자를 사용하지 않으므로 항상 true를 반환합니다. – algoni

+0

^... 변수를 true로 설정하므로 비교하지 않습니다. 왜 PHP가이 문맥에서이 연산자를 허용하는지 모르겠습니다. –

답변

0

단순히 문자열을 작성하면 HTML 코드를 출력 할 수 없습니다. 작은 따옴표 (')의 말에

<?php if ($loginEnabled == true) { 
    echo '<li><a href="sample-login.html" class="login"><span class="mmLogin">Login</span></a></li>'; 
}; ?> 

참고 세미콜론 : 출력을 작성하려면, 당신은 echo 문을 사용할 수 있습니다. 또한 청소기 코드를 PHP의 alternate syntax 제어 구조를 사용할 수 있습니다

<?php if ($loginEnabled == true): ?> 
    <li><a href="sample-login.html" class="login"> 
     <span class="mmLogin">Login</span> 
    </a></li> 
<?php endif; ?> 

위의 같은 일을 수행합니다. =은 대입 연산자이므로 ($loginEnabled = true)은 항상 true입니다. $loginEnabled에 해당하는 경우, 확인하려면 사용

if ($loginEnabled == true) 

당신은 단순히 그것을 단축 할 수 있습니다

if ($loginEnabled) 

더 읽기 assignment operators, comparison operatorsif statement에.

+0

그래, 고마워,하지만 여전히 내 질문에 대답하지 않습니다. 내 페이지가 모든 코드를 실행하는 대신 인쇄하는 이유는 무엇입니까? 나는 당신의 방법을 사용했다. – user3525252

관련 문제