ugrás a tartalomhoz

Veszo elvalasztas PHP kodban

zoliky · 2007. Okt. 17. (Sze), 17.40
Itt van a kovetkezo kod:

<?php
function template_main_above()
{
   global $context, $settings, $options, $scripturl, $txt, $modSettings;
   
   // Show right to left and the character set for ease of translating.
   echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"', $context['right_to_left'] ? ' dir="rtl"' : '', '><head>
   <meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" />
   <meta name="description" content="', $context['page_title'], '" />', empty($context['robot_no_index']) ? '' : '
   <meta name="robots" content="noindex" />', '
   <meta name="keywords" content="programare,software,dezvoltare,web,forum,baze de date,incepatori,multimedia,open source,html,css,javascript,php,perl,asp,java,c,python,ruby" />
   <script type="text/javascript" src="', $settings['default_theme_url'], '/script.js?fin11"></script>
   <script type="text/javascript" src="', $settings['default_theme_url'], '/bannerfade.js"></script>
   <script type="text/javascript"><!-- // --><![CDATA[
      var smf_theme_url = "', $settings['theme_url'], '";
      var smf_images_url = "', $settings['images_url'], '";
      var smf_scripturl = "', $scripturl, '";
      var smf_iso_case_folding = ', $context['server']['iso_case_folding'] ? 'true' : 'false', ';
      var smf_charset = "', $context['character_set'], '";
   // ]]></script>
   <title>', $context['page_title'], '</title>';
?>
Meg tudna mondani valaki miert van veszovel elvalasztva a HTML kod a valtozoktol ? En ugy tudtam, hogy pontot (. vagy concatenatet) kell hasznalni.

Koszi
 
1

echo

csla · 2007. Okt. 17. (Sze), 18.11
Az echo-nak meg lehet adni több paramétert, vesszővel elválasztva.


http://hu2.php.net/manual/hu/function.echo.php
2

koszi!

zoliky · 2007. Okt. 17. (Sze), 18.32
nem ugyanaz a lenyege mint a pontnak ?
3

elvileg igen

Szekeres Gergő · 2007. Okt. 17. (Sze), 19.34
ponttal összefűzöl két stringet, itt pedig kiiratsz egy-egy sztringet egymás után. Lényegében ugyan az.

Kiváncsiságból csinátam egy fapados tesztet, hátha az egyik gyorsabb, egy for ciklusba kiirattam egy stringet így is és a "pontos" módszerrel is (5-5 mérést csináltam):

paraméterként
0.013778209686279
0.013967037200928
0.019671201705933
0.020852088928223
0.022500991821289

összefűzve
0.016287088394165
0.016954183578491
0.019642114639282
0.021274089813232
0.022562980651855

magyarul használd azt ami jólesik.. :)
4

Eredmény lehet ugyan az, de a lényegük más

csla · 2007. Okt. 17. (Sze), 19.42
A . egy operátor, ami összefűzi a két oldalán álló sztringeket.
Az echo egy nyelvi konstrukció, melynek megadhatsz (vesszővel elválasztva) több paramétert, melyeket az adott sorrendben a kimenetre küld. Itt a vessző tehát nem összefűzésre, hanem egy felsorolás elemeinek elválasztására szolgál.

Itt az echo az 'éliástóbiás' sztringet küldi a kimenetre:

echo 'éliás'.'tóbiás'; 
Itt viszont először az 'éliás'-t, majd a 'tóbiást':

echo 'éliás','tóbiás'; 
Nyilván a kimeneten végeredményben az "éliástóbiás" lesz látható.

---
Látom, jó sokáig szerkesztettem, közben más is megválaszolta. Bocs, csak telefonom volt közben... :)
5

Végrehajtás...

janoszen · 2007. Okt. 17. (Sze), 19.53
A lényeg a végrehajtás sorrendjében van. A ponttal való elválasztást bármely helyzetben használhatod.

A példában ha ponttal lenne elválasztva, akkor előbb összefűzné a stringeket, majd kiechozná, vesszővel elválasztva minden stringet egyenként echozik ki.

Gyakorlatban semmi jelentőssége nincs.
6

koszi

zoliky · 2007. Okt. 19. (P), 14.10
ok koszi
7

pont és vessző operátor

Balogh Tibor · 2007. Okt. 20. (Szo), 13.38
Természetesen van különbség a két művelet között. A pont a sztringek összefűzése. A vessző az operandusok felsorolása.

A vessző operátor szerepel például a függvények paramétereinek megadásakor. Az echo esetén a különbség:

  //Vessző operátor
  echo $a, $b, $c;
  //Pepitában:
  echo $a;
  echo $b;
  echo $c;

  //Pont operátor
  echo $a.$b.$c;
  //Pepitában
  $d = $a.$b.$c;
  echo $d;

  //Mivel az echo nem függvény, ezért elhagyhatod a zárójelezést.
  //Talán így érthetőbb a különbség.
  echo($a, $b, $c);
  echo($a.$b.$c);
A különbség az echo esetén az, hogy pont operátort használva előbb össze kell fűznie a php-nek a sztringeket, majd az új sztringet fogja kiírni. Míg vessző esetén csak kiírja egymásután.
A vessző operátor gyorsabb, mert nem kell összefűzni a paramétereket, és nem kell plusz memóriaterületet foglalni.