Archive for the ‘Array-funktioner’ Category

Använd print_r() för att skriva ut en array

lördag, december 9th, 2017

Allt som ofta är man i behov av att skriva ut värdet av en variabel och då kanske man använder sig av echo eller print. Detta går så klart bra, men om man vill skriva ut en array eller ett object blir det problem. För detta ändamål finns den eminenta funktionen print_r(). Funktionen skriver ut data om en variabel på ett strukturerat sätt. Är det en skalär (”vanlig variabel”) skriver den ut den som om man hade använt echo, men är det en array skriver den ut ut värdet av varje element med indrag så att det blir snyggt och prydligt. Ett hett tips är att göra en egen funktion som först skriver ut HTML-taggen <pre> innan den anropar print_r(). Såhär t.ex.

function dump()
{
echo ’<pre>’;

$num_args = func_num_args();
for ($i = 0; $i < $num_args; ++$i)
{
print_r(func_get_arg($i));
echo ”\n\n”;
}

echo ’</pre>’;
exit;
}

Ovanstående funktion tar ett godtyckligt antal inparametrar vilket kan vara praktiskt när man utvecklar. Vill du t.ex. skriva ut värdet av variabeln $name och arrayen $addresses anropar du funktionen med:

dump($name, $addresses);

Förlita dig inte på register_globals

torsdag, december 7th, 2017

Om man programmerat PHP ett tag har man säkerligen stött på register.globals tidigare. Denna inställning i PHP:s konfigurationsfil php.ini gör att all data som skickas via GET, POST, cookies och sessions automagiskt registreras som variabler. Om man t.ex. skriver in ”script.php?id=5” i adressfältet när man kör ett skript kommer det automatiskt skapas en variabel $id med värdet 5. Detta må vara praktiskt i många fall, men det leder allt för ofta till säkerhethål i skripten.

Hur gör man istället då? Jo, sedan version 4.1.o finns det i PHP ett antal arrayer som man har tillgång till överallt i sin PHP-kod. Dessa är de s.k. superglobala arrayerna och de heter $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST och $_SESSION.  Istället för att förlita sig på att det finns en variabel $id helt automatiskt, får man åtkomst till id genom $_GET[’id’].

array_pop

fredag, februari 22nd, 2013
mixed array_pop ( array &$array )

Med hjälp av funktionen array_pop så kan man snabbt och smidigt returnera det sista värdet i en array eller ett fält samtidigt som detta plockas bort från densamma. Ifall variabeln är tom, eller inte en array, så kommer NULL att returneras. En varning blir dessutom resultatet om man försöker applicera funktionen på en variabel som inte är en array.

Exempel

$cars = array("Volvo", "Saab", "Toyota");
$toyota = array_pop($cars);
print_r($cars);

Skriver ut:
Array
(
[0] => Volvo
[1] => Saab
)

implode

lördag, februari 2nd, 2013
string implode (string $glue, array $pieces)

Funktionen implode kan man säga är motsatsen till explode. Med hjälp av denna funktion kan man skapa en sträng från ett fält eller en array där alla värden är separerade med valfri sträng.

Exempel

$cars = array('Volvo', 'Saab', 'Toyota');
echo implode(', ', $cars); // Skriver ut Volvo, Saab, Toyota

array_key_exists

lördag, februari 2nd, 2013
bool array_key_exists (mixed $key, array $search)

Funktionen array_key_exists används för att kontrollera om ett specifikt index-värde finns i ett fält eller en array och returnerar ett booleskt värde som talar om resultatet. Funktionen returnerar true även om värdet på ett index skulle vara null.

Exempel

$myArray = array('bil' => 'Ferrari', 'cykel' => 'BMX');
if (array_key_exists('bil', $myArray)) {
    echo "Bilen finns!";
}
if (array_key_exists('hus', $myArray)) {
    echo "Huset finns inte!";
}