array_key_exists

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!";
}

trim

januari 28th, 2013
string trim ( string $str [, string $charlist ] )

Funktionen trim används när man vill bli av med whitespace-tecken såsom mellanslag i början och slutet av en sträng. De tecken som plockas bort är följande:

  • ” ” (ASCII 32 (0x20)), ett vanligt mellanslag
  • ”t” (ASCII 9 (0x09)), en tabb
  • ”n” (ASCII 10 (0x0A)), radmatning (line feed)
  • ”r” (ASCII 13 (0x0D)), vagnretur (carriage return
  • ”” (ASCII 0 (0x00)), så kallad NUL-byte.
  • ”x0B” (ASCII 11 (0x0B)), en vertikal tabb

Genom att ange andra tecken som andra argument till funktionen så kan man trimma vilka tecken man vill från sin ursprungliga sträng.

Exempel

$str1 = "  hej ";
echo trim($str1); // Skriver ut "hej"

$str2 = "...hej!";
echo trim($str2, ".!"); // Skriver ut "hej"

isset

januari 26th, 2013
bool isset ( mixed $var [, mixed $... ] )

Det händer ofta att man vill veta om en variabel existerar eller inte. Då kan man använda sig av den smidiga lilla funktionen isset vilken helt enkelt bara returnerar sant/falskt beroende på om variabeln eller variablerna har deklarerats eller inte.

Ifall man anger fler än en variabel (separerade med kommatecken) så kommer funktionen att returnera sant endast om alla variabler existerar.

Exempel

$a = "";
if (isset($a)) {
    echo "Variabeln a finns!";
}
if (isset($b)) {
    echo "Variabeln b finns inte!";
}
$b = "12";
if (isset($a, $b)) {
    echo "Nu finns både a och b!";
}

strpos

januari 25th, 2013
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Funktionen strpos används för att söka efter en sträng i en annan. Ifall den eftersökta strängen hittas så returneras positionen där denna börjar, annars returneras false. Funktionen kan också returnera ett värde som värderas som false och därför måste operatorn === användas istället för ==. Man kan också ange ett positivt heltalsvärde som offset ifall man inte vill att funktionen ska börja söka från början av strängen.

Exempel

$oranges = "apelsiner";
$pears = "päron";
$apples_and_oranges = "äpplen och apelsiner";
echo strpos($apples_and_oranges, $oranges); // Skriver ut 11;
if (strpos($apples_and_oranges, $pears) === false) {
    echo "Det finns inga päron";
}

strtolower

januari 19th, 2013
string strtolower ( string $str )

Funktionen strtolower används för att göra om en sträng till att innehålla enbart gemener, det vill säga små bokstäver. Funktionen är beroende av vilket som är det lokala språket på servern. Är strängen på ett annat språk än engelska så bör därför normalt sett multibyte-varianten mb_strtolower användas istället.

Exempel

$str = "I AM the best!";
$str = strtolower($str);
echo $str; // Skriver ut 'i am the best'

instanceof

januari 19th, 2013

Inom objektorienterad programmering så är det ofta väldigt användbart att kunna ta reda på om en variabel är en instans utav en given klass, i synnerhet när det handlar om validering och arv. Inom PHP kan man göra detta mycket smidigt genom operatorn instanceof vilken helt enkelt bara returnerar en boolean.

Exempel

class House
{
}

class SmallHouse extends House
{
}

$a = new House;
$b = new SmallHouse;

var_dump($a instanceof SmallHouse); // Skriver ut bool(false)
var_dump($b instanceof SmallHouse); // Skriver ut bool(true)
var_dump($b instanceof House);      // Skriver ut bool(true)

explode

januari 15th, 2013
array explode ( string $delimiter , string $string [, int $limit ] )

Explode är en mycket användbar funktion som tillkom i PHP 4 och som delar upp en sträng i en array baserat på en substräng.

Exempel

$str = "jul,tomte,snö,presenter";
$arr = explode(",", $str);
echo $arr[1]; // Skriver ut tomte

Om man bara behöver en del av strängen så kan man ange det maximala antalet element som ska returneras med hjälp av ett positivt eller negativt heltal (anger man 0 så kommer det att behandlas som 1). Negativa värden accepteras från och med PHP 5.1.0. Om ett negativt värde anges kommer detta antal element att uteslutas med början från slutet.

Exempel

$str = "jul,tomte,snö,presenter,,,,,,,";
$arr = explode(",", $str, 4);
echo count($arr); // Skriver ut 4

is_int

juli 8th, 2012
bool is_int ( mixed $var )

Funktionen is_int används för att ta reda på om en variabel är ett heltal (integer på engelska) eller inte. Funktionen returnerar ett värde av typen boolean, alltså true (sant) eller false (falskt).

Notera att is_int returnerar alltid falskt för en sträng oavsett om den är numerisk eller inte. Om du vill kunna använda denna funktion för exempelvis ett värde från ett formulär måste du omvandla variabeln eller använda is_numeric istället.

Maxvärdet för argumentet i funktionen är beroende av ifall din miljö kör med 32 eller 64 bitar.

Exempel

// Skriver ut: bool(true)
var_dump(is_int(5));

// Skriver ut: bool(false)
var_dump(is_int("5"));

// Skriver ut: bool(false)
var_dump(is_int(5.5));

intval

juli 8th, 2012
int intval ( mixed $var [, int $base = 10 ] )

Intval är en ganska självförklarande funktion som helt enkelt returnerar heltalsvärdet av en variabel. Utan angivet värde så används 10 som bas, det vill säga vårt vanliga talsystem, men man kan också ange 2, 4 eller 75 som bas om man så önskar. Om basen ska ha någon effekt så måste man skicka in värdet som en sträng till funktionen.

Intval kan inte användas på objekt då det returnerar 1 samt resulterar i ett fel av typen E_NOTICE.

Om funktionen inte kan avgöra något heltalsvärde så returneras 0. Så är fallet för en tom array, tal som är större än maxvärdet för ett heltal i PHP samt de flesta strängar även om det i det senare fallet beror på vilka tecken som strängen inleds med. En array med värden returnerar alltid 1.

Några exempel

// Skriver ut: 70
echo intval(70)

// Skriver ut: 7
echo intval(7.4)

// Skriver ut: 22
echo intval('022')

// Skriver ut 1
echo intval(array('ett', 'två'));

// Skriver ut 7
echo intval('111', 2);

str_replace

juli 6th, 2012
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Funktionen str_replace använder man för att ersätta en sträng med en annan. Strängen man söker efter brukar kallas för needle på engelska, alltså nål. Strängen man söker i brukar kallas för haystack, alltså höstack på svenska. Man söker således efter en nål i en höstack vilket går mycket snabbare med hjälp av en dator än för hand.

Funktionen fungerar för såväl strängar som arrays (eller fält). Om både search och replace är arrays så kommer ett värde åt gången att plockas från dessa. Om replace har färre värden så används en tom sträng för resterande ersättningar. Om search är en array och replace är en sträng så kommer strängen att ersätta samtliga värden i search. Om search är en array så returnerar funktionen en array och om den är en sträng så returneras en sträng.

// Skriver ut: Min cykel är röd.
$bike_color = "röd";
echo str_replace("blå", $bike_color, "Min cykel är blå.");

// Skriver ut: Min båt är röd.
$boat = array("båt", "röd");
$bike = array("cykel", "blå");
echo str_replace($bike, $boat, "Min cykel är blå.");

Sedan PHP 5 kan man även skicka med en valfri extra variabel till funktionen som talar om hur många gånger ersättningen har utförts.

// Skriver ut 2
$two = "två";
$three = "tre";
$str = str_replace($two, $three, "Jag har två böcker och två tidningar.", $count);
echo $count;

Str_replace ersätter alltid från vänster och till höger och kan därför i vissa fall ersätta ett nyintroducerat värde när man gör flera ersättningar.

Str_replace är case-sensitive, det vill säga den gör skillnad mellan stora och små bokstäver i strängarna. Om man inte vill göra skillnad mellan dessa ska man istället använda sig av funktionen str_ireplace.