Archive for juli, 2012

is_int

söndag, 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

söndag, 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

fredag, 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.

strlen

fredag, juli 6th, 2012
int strlen ( string $string )

Funktionen strlen returnerar längden på en sträng. Det är antal bytes som returneras och inte antalet tecken. Ett mellanslag räknas alltså oavsett om det står först eller sist i strängen. En tom sträng såväl som NULL returnerar alltid värdet 0.

Före PHP version 5.3.0 så behandlades en array som strängen ”Array” vilket innebar att en array alltid returnerade värdet 5 samtidigt som det resulterade i ett fel av typen E_NOTICE. Från och med PHP 5.3.0 så returneras NULL om man försöker skicka in en array i funktionen och det resulterar numera i ett fel av typen E_WARNING, det vill säga nästa nivå uppåt i skalan.

echo strlen('Tomten'); // 6

echo

fredag, juli 6th, 2012
void echo ( string $arg1 [, string $... ] )

Echo är inte en vanlig funktion utan en av PHP-språkets grundläggande språkkonstruktioner. Dessa skiljer sig från funktionerna på det viset att PHP-parsern direkt känner igen dessa ord utan att kontrollera om det finns en funktion med detta namn. Relativt sett är dessa kommandon de allra snabbaste i PHP-språket. Lyckligtvis så hör de i likhet med echo också till de allra vanligaste.

Syntaxen för echo säger oss att kommandot inte returnerar något värde och att vi kan skicka in en eller flera strängar separerade med ett kommatecken. Eftersom echo inte är en vanlig PHP-funktion så är parenteserna kring dessa strängar valfria.

Så vad gör då echo? Echo gör något av det mest grundläggande inom programmeringen nämligen skriver ut de strängar som skickas in. Här är ett enkelt exempel:

echo "Erik har en röd cykel.";

I PHP så kan du tala om för språket att det handlar om en sträng genom att använda enkla (’) eller dubbla (”) citattecken. I vissa fall gör det skillnad vilket du väljer. Om du ska kunna använda en variabel inom citattecknen så måste du använda dubbla citattecken:

$color = "blå";
echo "Erik har en $color cykel.";

Denna kod skriver ut texten ”Erik har en blå cykel.”. Använder man istället enkla citattecken kommer man att få utskriften ”Erik har en $color cykel.”, det vill säga echo skriver ut exakt det som står där.

Det går även utmärkt att skriva ut siffror och heltal med hjälp av echo. Däremot kan du inte skriva ut andra sammansatta variabeltyper såsom Array eller objekt.

echo 12;