---
title: "kodeffektivisera, echo-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/93605-kodeffektivisera-echo-problem"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "herq"
published: "2003-12-29T18:38:58.000Z"
updated: "2003-12-30T13:19:14.000Z"
replies: 14
views: 437
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/93605-kodeffektivisera-echo-problem"
---

# kodeffektivisera, echo-problem

## #1 — herq, 2003-12-29T18:38Z

jag försöker korta ner dessa \_**tre**\_ (fungerande) rader...

```php
echo "<a href=\"?page=1";
echo $searchquery ? '&searchquery=' . $searchquery: '';
echo "\">1</a>";
```

...till \_**en**\_ (för närvarande icke fungerande) rad...

```php
echo "<a href=\"?page=1" . $searchquery ? '&searchquery=' . $searchquery: '' . "\">1</a>";
```

\_**en**\_-raden skriver bara ut:
&searchquery=XXXXXX

medan de \_**tre**\_-raderna skriver ut:
\<a href="?page=1&searchquery=XXXXXX"\>1\</a\>

ovanstående resultat önskas, fast med \_**en** \_-raden metoden.

förstår ni?
hjälp mig.

jag blir inte mkt klokare, än vad jag redan är, av <http://www.php.net/echo>

Permalänk: https://www.webforum.nu/p/93605

## #2 — storebror_1984, 2003-12-29T18:48Z

testa följande:

echo ("
\<ahref=\\"page=$prev" .$searchquery ? '&searchquery=' .$searchquery: '' . "\\"\>$page\</a\>
");

Permalänk: https://www.webforum.nu/p/1238348

## #3 — storebror_1984, 2003-12-29T18:50Z

så borde det se ut om jag förstått dig rätt =)

Permalänk: https://www.webforum.nu/p/1238349

## #4 — herq, 2003-12-29T18:59Z

nä funkar inte.

är ju \_exakt\_ samma exempel som som min en-radare, bara lite fulare. :) ;)

Permalänk: https://www.webforum.nu/p/1238355

## #5 — Matte, 2003-12-29T20:08Z

Din mittersta rad är en if-sats i kortform, och den tror jag inte du kan slänga in rakt upp och ner i en echo.

Vill du ha det på en rad så får du nog göra så här:

```php
echo !empty($searchquery) ? "<a href=\"?page=1&searchquery=$searchquery\">1</a>" : "<a href=\"?page=1\">1</a>";
```

 

Eller på två rader:

```php
$searchquery = !empty($searchquery) ? '&searchquery=' . $searchquery : '';
echo "<a href=\"?page=1$searchquery\">1</a>";
```

Permalänk: https://www.webforum.nu/p/1238392

## #6 — Webslave, 2003-12-29T20:15Z

eller:

```php
echo "<a href=\\"?page=1&searchquery=".$searchquery."\\">1</a>";
```

Permalänk: https://www.webforum.nu/p/1238397

## #7 — herq, 2003-12-29T20:35Z

matte\>\> men jag VILL att det ska gå o "slänga in rakt upp och ner", VARFÖR GÅR INTE DET, det borde det göra.

webslave\>\> jo visst, det funkar, har gjort så, med det är för enkelt, o det är ju inte som jag vill att det ska funka, heh, äsch, jag får väl finna mig i det då.

tack allihopa.

Permalänk: https://www.webforum.nu/p/1238399

## #8 — Matte, 2003-12-29T21:35Z

Anledningen till att det inte går är att du har följande kod, skrivet på ett annat sätt:

```php
echo "<a href=\"?page=1";
if ($searchquery) {
   echo '&searchquery=' . $searchquery;
} else {
   echo '';
}
echo "\">1</a>";
```

Permalänk: https://www.webforum.nu/p/1238429

## #9 — herq, 2003-12-29T22:34Z

matte\>\> ja vet, det var så det såg ut från början, men det är ju liksom hela 7(!) rader, o det går ju inte för sig. :)

ok, anledningen till varför jag tycker att det \_borde\_ fungera.
enl <http://www.php.net/echo>
så funkar ju följande alldeles ypperligt:

```php
echo $some_var ? 'true': 'false';
```

o det är ju liksom en \_**if()**\_ "innästlat" i en \_**echo"";**\_

så delvis går det ju att "slänga in rakt upp och ner"

o att då få in lite text innan o efter tycker jag inte ska vara så svårt.

följande fungerar ju exempelvis ypperligt även det:
echo "blaha text" . date("U") . "blaha text";

eller tycker ni att jag är helt ute o cyklar med det här resonemanget?

Permalänk: https://www.webforum.nu/p/1238457

## #10 — Matte, 2003-12-29T23:10Z

Jag förstår hur du tänker, men syntaxen är:

```
(sant/falskt) ? (om sant) : (om falskt);
```

 

Lägger du till något före så blir det istället:

```
(kod_före_sant/falskt) ? (om sant) : (om falskt_kod_efter);
```

 
Och det första uttrycket ger parse error.

Vill du köra med den syntaxen så blir det som jag skrev tidigare:

```
echo !empty($searchquery) ? "<a href=\"?page=1&searchquery=$searchquery\">1</a>" : "<a href=\"?page=1\">1</a>";
```

Permalänk: https://www.webforum.nu/p/1238468

## #11 — lunne82, 2003-12-29T23:12Z

Men (1)

```php
echo $some_var ? 'true' : 'false';
```

 
är inte samma som (2)

```php
echo "<a href=\"?page=1" . $searchquery ? '&searchquery=' . $searchquery : '' . "\">1</a>";
```

 

eftersom i (2) är variabeln $some_var = "\<a href=\\"?page=1" . $searchquery.

Borde du inte skriva nåt i stil med

```php
echo "<a href=\"?page=1" . ( $searchquery ? '&searchquery=' . $searchquery : '' ) . "\">1</a>";
```

om nu PHP accepterar parenteserna så som de är tänkta.

Tänk bara på att *främst* behålla läsbarheten i koden, inte bara minska antalet rader.

Permalänk: https://www.webforum.nu/p/1238470

## #12 — herq, 2003-12-30T00:01Z

lunne82\>\> jjaaaaaa!!! ditt sista kodexempel, det var precis det jag menade och var ute efter. det funkar alltså. tack. vad bra. nu kan jag sova lugnt.
dessa förbannade parenteser.

fast nu har jag redan löst det på ett annat mindre estetiskt men ändock bättre rent processor/prestandamässigt sätt.

/red
fresten tycker jag att \_en\_ rad bidrar enormt mkt mer till en lättlästare (kan man komparera 'lättläst' till superlativ?) kod än vad \_sju\_ rader gör ;) :e

Permalänk: https://www.webforum.nu/p/1238483

## #13 — lunne82, 2003-12-30T00:18Z

> fresten tycker jag att \_en\_ rad bidrar enormt mkt mer till en lättlästare (kan man komparera 'lättläst' till superlativ?) kod än vad \_sju\_ rader gör

 
"fresten tycker jag att \_en\_ rad bidrar till enormt mkt mer lättläst kod än vad \_sju\_ rader gör"
tror jag det blir. :)

Permalänk: https://www.webforum.nu/p/1238493

## #14 — herq, 2003-12-30T00:24Z

men min superlativ'a version skulle bli: \_lättlästast\_.
ok, kanske inte \_mest lättläst\_ :e, men helt klart coolast, låter lite som 'sex laxar i en laxask'.

Permalänk: https://www.webforum.nu/p/1238495

## #15 — Webslave, 2003-12-30T13:19Z

herq:
Hehe... jag missuppfattade dig helt och hållet... typpiskt mig.

Permalänk: https://www.webforum.nu/p/1238663

---

Tråden på webben: https://www.webforum.nu/amne/php/93605-kodeffektivisera-echo-problem
