Utolsó frissítés: 2012.02.13.
Facebook Twitter iWiW MySpace Digg Delicious Google bookmarks Startlap Windows Live

Megjegyzések

Megjegyzések a PHP-ben

Mivel az előző anyag házi feladatának megemésztése talán nem túl könnyű, most egy viszonylag egyszerű témát választottam: hogyan írhatunk a PHP kódba a kód olvasását könnyítő megjegyzéseket (comment-eket)? Már az előző házi feladat megoldásában látszik, hogy sokszor szükség lehet erre, ott egy // után írtam megjegyzéseket. Valójában az ottani program nyelvtanilag helyes, tehát ha kimásolod és kipróbálod, a // utáni szöveg nem fogja befolyásolni a program működését. (Persze programozás tanulására semmiképp sem a másolásos módszert javaslom, hanem azt, hogy te magad gépeld le a programot!) A PHP nyelvben 3 módszer is van a kódban megjegyzés elhelyezésére:

	/* többsoros megjegyzést
	írhatunk ide */
	// egysoros megjegyzés (a sor végéig tart)
	# ez szintén a sor végéig tartó megjegyzés

A /* és */ kifejezések közé írt szöveget a PHP kódot HTML kóddá lefordító szerver nem fogja figyelembe venni, tehát ide bármilyen szöveget írhatunk. Ugyanígy a // és a # jelek után írt szöveg is megjegyzés, de utóbbiak csak a sor végéig tartanak, a /* ... */ szerkezettel viszont többsoros megjegyzéseket írhatunk. A /* */ // és # jelek után nem szükséges szóközt rakni, csak a könnyebb olvashatóság érdekében tettem. Példa megjegyzések használatára:

	/* n-es szorzótábla kiírását végző program (nagyon hasznos!) */
	/******************************************
	Copyright by Hörb; minden jog fenntartva!!!
	******************************************/
	$n = 2;
	print $n;
	print "*1=";
	print $n * 1;  //most a 2-es számot írja ki
	print "<br />";  //kiírunk egy sortörést
	print $n;
	print "*2=";
	print $n * 2;
	print "<br />";  //kiírunk egy sortörést
	print "stb...";

Persze ilyen megjegyzéseket írni hogy "//kiírunk egy sortörést", hülyeség mivel a sok megjegyzéssel a program olvashatóságát ronthatjuk, pedig a megjegyzések írásának pont az ellenkezője a célja. Az, hogy ha valaki más vagy később mi olvassuk a programot (pl. fejlesztés céljából) akkor könnyebben eligazodjunk rajta. Az ilyen sorok hogy

$x = $x + 3; //x értéke 3-mal nő

fölöslegesek, mivel a programozó, aki olvassa a kódot nyilván tudni fogja hogy mit jelent a fenti sor!
Most nézzünk meg egy nagyobb programrészletet hogy láthassuk, nagyjából mennyi megjegyzést érdemes elhelyezni:

	<?php

	// védelem a többszörös beépítéssel szemben
	if (!defined("INCLUDED_DATETIME_PHP")){
	define("INCLUDED_DATETIME_PHP", TRUE);

	/**
	 * dátum és idő formázott előállítását végző függvény
	 * "xxxx. hónap xx. xx:xx:xx" alakban
	 * @return string formázott dátum
	 */
	function format_datetime(){
		$time = time();
		$month = "";
		//hónap nevének meghatározása:
		switch (date("m", $time)){
			case "01": $month = "január"; break;
			case "02": $month = "február"; break;
			case "03": $month = "március"; break;
			case "04": $month = "április"; break;
			case "05": $month = "május"; break;
			case "06": $month = "június"; break;
			case "07": $month = "július"; break;
			case "08": $month = "augusztus"; break;
			case "09": $month = "szeptember"; break;
			case "10": $month = "október"; break;
			case "11": $month = "november"; break;
			case "12": $month = "december"; break;
			default: $month = "ismeretlen"; break;
		}
		$separator = array(". ", " ", ". ", ":", ":"); //elválasztó karakterek
		$year = date("Y", $time); //év
		$day = date("d", $time);  //nap
		$hour = date("H", $time); //óra
		$min = date("i", $time);  //perc
		$sec = date("s", $time);  //másodperc
		return $year.$separator[0].$month.$separator[1].$day.$separator[2].
			   $hour.$separator[3].$min.$separator[4].$sec;
	}

	print format_datetime();

	} // INCLUDED_DATETIME_PHP

	?>

Most nem lényeges, hogy egy szót is megértsünk abból, hogy mit csinál a program (bár a megjegyzéseket elolvasva a fő tevékenység kiderül), csak azért raktam be példaként, mert megjegyzéseket csak komolyabb programokban érdemes használni, odáig viszont még nem jutottunk el hogy ilyet írjunk (az utolsó lecke végén jutunk el odáig, hogy megértsük ezt a programot)!
A /* ... */ alakú megjegyzésről még tudni kell, hogy nem ágyazhatók egymásba, vagyis az a kód, hogy

	/*
	$n = 0; /*kezdeti érték*/
	$n = $n + 1;
	*/

hibás, mivel a kódban a /* jelölés után minden karakter megjegyzésnek számít, kivéve a */ karaktereket, ami a megjegyzés lezárását jelenti. A különböző típusú megjegyzések azonban egymásba ágyazhatók, pl:

	/*
	$n = 0; //kezdeti érték
	$n = $n + 1;
	*/

A fenti esetben az egész programrészlet megjegyzés lett, ezzel a módszerrel tehát kiszedhetünk bizonyos részeket a programból, anélkül hogy kitörölnénk őket (hátha később szükség lesz rájuk)!

Megjegyzések a HTML-ben

Vigyázzunk arra, hogy a fent ismertetett megjegyzések csak PHP kódban használhatók, tehát csak a <?php és ?> tegek között! A HTML kódban megjegyzést írni a <!-- ... --> teg használatával lehet, pl:

	<html>
	<head>
	  <title>Megjegyzések</title>
	</head>
	<body>
	<!-- Vigyázat! Most PHP kód következik! -->
	<?php

	$n = 0; //kezdeti érték
	$n = $n + 1;
	print $n;

	?>
	<!-- Vége a PHP
	kódnak -->
	</body>
	</html>

A <!-- ... --> szerkezettel szintén többsoros megjegyzéseket lehet írni! A fenti példában a "Vigyázat! Most PHP kód következik!" szöveget a böngésző figyelmen kívül hagyja, nem fog megjelenni a böngésző ablakában.

Mára ennyi! Házi feladatot nem adok, mert a mostani anyaggal kapcsolatban nem nagyon lehet kitalálni semmi értelmeset. Legközelebb viszont be lesz pótolva!