---
title: "Skriva ut ut variabeln"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/190490-skriva-ut-ut-variabeln"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Jester73"
published: "2012-09-27T11:48:36.000Z"
updated: "2012-09-30T08:47:31.000Z"
replies: 7
views: 1008
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/190490-skriva-ut-ut-variabeln"
---

# Skriva ut ut variabeln

## #1 — Jester73, 2012-09-27T11:48Z

Hej

Jag har en HTML/PHP kodsnutt som ser ut som 

```
 <td class="inp" style="width: <?echo $FormSize[C2]?>px;"><input class="inputs" tabindex="2" type="text" name="FNamn" value="<?php (!empty($client) ?  echo $info[FNamn]: "")?>" />
```

Min fråga är varför skrivs inte $info\[FNamn\] ut?

Var kan jag läsa mer om just denna syntax
(testavvariabel ? Utfall1 : Utfall2)

Tack på förhand!

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

## #2 — Jojoxx, 2012-09-27T11:57Z

Det saknas en parantes:

```
(!empty($client))
```

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

## #3 — Pedda, 2012-09-27T12:00Z

Flytta sista parentesen

```php
(!empty($client)) ?  echo $info[FNamn]: ""
```

Detta är en if sats, kan även skrivas

```php
if (!empty($client)) {
     echo $info[FNamn]; // !empty($client) returnerar true
} else {
     echo $info[FNamn]; // !empty($client) returnerar false
}
```

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

## #4 — Jester73, 2012-09-27T12:03Z

Tackar för snabbt svar

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

## #5 — nitro2k01, 2012-09-27T12:10Z

Jojoxx: nej. Den extra parentesen behövs inte, och det är inte varför Jester73:s kod inte funkar. Du kan inte sätta echo mitt i ett uttryck av den typen. Du kan/bör bara använda variabler eller funktioner som returnerar ett värde, och sedan använda värdet från hela uttrycket i echo. Dessutom måste/bör du nog ha ett semikolon efter hela uttrycket, precis som annars.
Dvs:

```php
<?php echo (!empty($client) ? $info[FNamn]: ""); ?>
```

Dock bör du göra en sak till, nämligen att köra resultatet genom htmlspecialchars. Denna funktion gör så att t ex " ersätts med &quot; vilket förhindrar att någon skriver in " i fomuläret och på så vis kan få in HTML-kod i sidan.

```php
<?php echo htmlspecialchars(!empty($client) ? $info[FNamn]: ""); ?>
```

?: kallas för the ternary operator på engelska och den finns beskriven här:
<http://php.net/manual/en/language.operators.comparison.php>

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

## #6 — Pedda, 2012-09-27T12:15Z

nitro har nog rätt i att man inte kan köra en echo i en sån if-sats.
Tror att jag har varit borta från PHP för länge, måste nog koda lite snart så jag inte gör fler såna misstag.  :e

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

## #7 — Jojoxx, 2012-09-28T05:39Z

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1554963)**
>
> Jojoxx: nej. Den extra parentesen behövs inte, och det är inte varför Jester73:s kod inte funkar. Du kan inte sätta echo mitt i ett uttryck av den typen.

Nej, givetvis inte. Det borde jag sett. Gick lite för snabbt som vanligt.  :r

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

## #8 — walter groupius, 2012-09-30T08:47Z

Rekommenderar en editor som illustrerar med god syntax highlighting vad som händer i koden. Exempelvis zend.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/190490-skriva-ut-ut-variabeln
