2011-09-11 3 views
0
이 같이

...변수의 출력 후에 변수를 선언 할 수 있습니까 ??? PHP

echo $title; 

$title = 'Jelly'; 

내 일부 페이지에, 나는 $ 제목을 선언 그 전에 헤더 파일을 가지고 있기 때문에 페이지가 간단한 $ _GET [ '을 사용하여 다른 부분을 가지고 있지만 난 단지 질문 탭 '] ==='blahblahblah ';

하지만 헤더 파일이라는 한 후에 _GET 변수 선언이 $ ...

+0

"캔"의 의미에 따라 다릅니 까? 오류가 발생하지 않으므로 그 의미에서 "할 수 있습니다". 그러나 그것은 "젤리"를 되풀이하지 않을 것입니다 .... –

+0

그건 선언하지 않습니다. 이전에 사용되지 않은 (따라서 선언되지 않은) 변수에서 처음으로 읽은 다음 나중에 값으로 설정합니다. – tdammers

답변

1

하지만 헤더 파일이라는 한 후 이러한 $ _GET 변수가 선언 ...

당신이 잘못하고있는 일입니다

.

필요한 모든 데이터를 얻은 후에야 헤더를 호출하십시오.

이 작업을 수행하려면 적절한 사이트 아키텍처가 필요합니다.

  1. 주요 사이트 서식 파일 (헤더 포함)
  2. 특정 페이지 템플릿
  3. 페이지 코드 :
    는 3 개 부분으로 코드를 분할 .

이 설정으로 문제가 발생하지 않습니다.

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>My site. <?=$pagetitle?></title> 
</head> 
<body> 
<div id="page"> 
<? include $tpl ?> 
</div> 
</body> 
</html> 

links.tpl.php 실제 페이지 템플릿입니다 : main.tpl.php는 메인 사이트 서식 파일입니다
전형적인 스크립트는 머리글, 바닥 글, 메뉴 등과 같은 일반적인 부품을 포함,

<? 
//include our settings, connect to database etc. 
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php'; 
//getting required data 
$DATA=dbgetarr("SELECT * FROM links"); 
// setting title for using in the main template 
$pagetitle = "Links to friend sites"; 
//etc 
//set page template filename 
$tpl = "links.tpl.php"; 
//and then finally call a template: 
include "main.tpl.php"; 
?> 

처럼 보일 수 있습니다 :

<h2><?=$pagetitle?></h2> 
<ul> 
<? foreach($DATA as $row): ?> 
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li> 
<? endforeach ?> 
<ul> 
+0

나는 이것을 다음과 같이 사용하고있다. $ _GET [ 'tab'] === '받은 편지함'{} $ _GET [ 'tab'] === '새 메시지'{} 메일 박스에 대해 다른 페이지를 보여주기 때문에, 헤더 파일은 페이지의 HTML 내용 이전의 모든 것을 포함하므로 헤더 파일 다음에 선언해야합니다. – carlgcode

+0

틀렸어.그들은 헤더 파일 다음에 선언 할 필요가 없습니다. 템플릿을 사용하십시오. 내 예를 보아라. –

+0

ok thanks :) 이것에 대해 살펴 보겠습니다. – carlgcode

1
당신이 출력 $ 제목, 그것은 $ 제목하지 않는 출력 아무 것도하지 않는 다른 사전에 뭔가로 설정, 또는 한 것입니다 경우

번호 PHP의 register_globals 설정이 활성화되어 있습니다 (ph < 5.3.0). "title"은 요청 매개 변수입니다.

귀하가 허락 여부를 묻는다면, 절대적으로 그렇습니다. 변수가 'Jelly'로 변경되지만, 특정 값은 위에서 설명한대로 반향되지 않습니다.

0

선언하기 전에 $ title을 사용하면 안됩니다 (PHP는 선언되지 않은 변수 사용에 대한 알림을 표시하고 $ title 값이 null이므로 아무 것도 출력하지 않습니다). $ _GET 변수는 환경 (웹 서버)에 의해 설정되며 값을 할당하면 안됩니다. $ _GET 변수에서받은 값을 읽어야합니다.

관련 문제