sprintf

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Fullstack developer

Functie omschrijving We are looking for a dutch native speaker Wil jij werken als Senior Developer en werken aan een applicatie die duizenden marketingcampagnes automatisch aanstuurt? Dit is je kans! Kom werken voor onze opdrachtgever en in deze rol zul je veel vrijheid en verantwoordelijkheid krijgen om gezamenlijk de applicatie naar een hoger plan te tillen. Wat ga je verder doen: Optimaliseren, beheren en uitbreiden van onze applicatie; Het bouwen van aansluitingen op de systemen van partners middels API’s; Meedenken over de technische/ontwikkel-standaarden; Proactief verbeterpunten voorstellen. Bedrijfsprofiel Het is een organisatie die met een team van verschillende developers én marketeers

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

07/03/2012 08:14:00
Quote Anchor link
Hallo,

Een korte vraag. Ik zie wel eens de functie sprintf voorbij komen en ik vraag me af in welke situatie je die gebruikt. Stel we hebben iemands naam en leeftijd en we willen een zin maken. Zelf zou ik dan dit doen:

Manier A:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$leeftijd
= 100;
$naam = 'Piet';
echo $naam . ' is ' . $leeftijd . ' jaar.';
?>


Maar er zijn ook mensen die dan dit doen:

Manier B:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$leeftijd
= 100;
$naam = 'Piet';
$bericht = sprintf('%s is %d jaar');
echo $bericht;
?>


Mijn vraag is: doe jij het op Manier A of manier B en waarom?
 
PHP hulp

PHP hulp

16/02/2025 17:34:40
 
Kees Schepers

kees Schepers

07/03/2012 09:20:11
Quote Anchor link
Meestal manier B omdat dit beter leest en je kunt presentatie afdwingen naar een bepaald datatype :)
 
Ozzie PHP

Ozzie PHP

07/03/2012 09:35:42
Quote Anchor link
Kees, dankjewel. Betekent dit dan ook dat je een waarde niet vantevoren hoeft te typecasten? (hoeft in feite sowieso niet, maar als je het netjes wil doen)

Stel dat $leeftijd per se een string moet zijn. Dan zou ik nu zeggen:

$leeftijd = (string) $leeftijd;
echo 'Ik ben ' . $leeftijd . ' jaar.'

Maar met sprintf kun je dan %s gebruiken en hoef je niet eerst te typecasten? Is dat correct?
 
Kees Schepers

kees Schepers

07/03/2012 11:25:53
Quote Anchor link
Met een kleine slag om de arm zeg ik dat het correct is ;)
 
Roel -

Roel -

07/03/2012 11:28:12
Quote Anchor link
Interessant topic, ik wil me ook nog steeds een keer verdiepen in de sprintf functie, aangezien deze handig is als je websites in meerdere talen beschikbaar wilt maken.

Mijn vraag is, waarom is het nodig om types mee te geven? Dit werkt namelijk ook prima:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$naam
= 'Roel';
$leeftijd = 18;
$geld = 30000;
echo sprintf('%1$s is %2$s jaar en hij zou graag &euro; %3$s op zijn rekening hebben.', $naam, $leeftijd, number_format($geld, 0, ',', '.'));
?>


Ik weet nog niet precies waarom je voor ieder type een andere type specifier moet gebruiken.
 
Wouter J

Wouter J

07/03/2012 11:39:12
Quote Anchor link
@Roel, in jou voorbeeld geef je ook een type mee:

%1$s is uitgepakt:
%s en $1

%s betekend dat het een string is en $1 betekend het eerste argument.

Dat %3$s werkt is omdat number_format een string terug geeft. Mocht je direct een getal in voegen dan MOET je gebruik maken van de positioncharacters ($n), omdat anders de functie niet werkt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

$naam = 'Jan';
$leeftijd = 24;

echo sprintf('%s is %d', $naam, $leeftijd);
// Jan is 24 (hierbij wordt 24 gezien als een int en doormiddel van type juggling wordt het automatisch een string
echo sprintf('%s is %s', $naam, $leeftijd);
// Jan is 24 (hierbij wordt 24 getypecast naar een string en dan toegevoegd
echo sprintf('%s is %d', $leeftijd, $naam);
// Jan is 0 (de arguments staan in verkeerde volgorde)
echo sprintf('%$2s is %$1d', $leeftijd, $naam);
// Jan is 24 (doormiddel van positioncharacters wijzen we de positie van het argument aan)
echo sprintf('%$2s is %$2s en %$1d', $leeftijd, $naam);
// Jan is Jan en 24 (met positioncharacters kunnen we ook arguments vaker gebruiken)
echo sprintf('%s is %s en %d', $naam, $leeftijd);
// PHP raakt de weg kwijt en geeft een error: Too few arguments
 
Ozzie PHP

Ozzie PHP

07/03/2012 11:39:36
Quote Anchor link
Jij geeft volgens mij ook een type mee. %s staat voor string. Die nummers met het dollarteken staan voor de positie. Die hoef je niet per se in te vullen. Je doet dat volgens mij als de volgorde afwijkt van de volgorde waarin je je argumenten meegeeft. Maar je geeft dus wel types mee via %s.

Toevoeging op 07/03/2012 11:40:21:

Oeps... Wouter was me voor :)
 
Roel -

Roel -

07/03/2012 11:45:17
Quote Anchor link
Maar die %s is een string en ik geef $leeftijd op als integer.
Hoe kan het dan dat ik geen error krijg?
 
Wouter J

Wouter J

07/03/2012 11:50:28
Quote Anchor link
@Roel, number_format geeft zoals je bij Return Values kunt lezen een string terug en geen int.

En anders krijg je als nog geen error, omdat de int dan wordt getypecast naar een string. Het is beter om een %d te gebruiken want dan voeg je hem in als een int en dan wordt er doormiddel van type juggling besloten dat de int een string moet worden, als je een string opgeeft wordt de string eerst getypecast en dan pas toegevoegd.
 
Ozzie PHP

Ozzie PHP

07/03/2012 11:57:39
Quote Anchor link
Wouter J op 07/03/2012 11:50:28:
Het is beter om een %d te gebruiken want dan voeg je hem in als een int en dan wordt er doormiddel van type juggling besloten dat de int een string moet worden, als je een string opgeeft wordt de string eerst getypecast en dan pas toegevoegd.

Wouter, kun je hier een voorbeeldje van geven wat precies het verschil is / zou kunnen zijn?
 
Wouter J

Wouter J

07/03/2012 11:59:47
Quote Anchor link
Het verschil is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$str
= 'Jan is '.$leeftijd;
// tegen
$str = 'Jan is'.(string) $leeftijd;
?>
 
Roel -

Roel -

07/03/2012 12:02:44
Quote Anchor link
Ja, maar ik geef bij $leeftijd toch echt een integer op.
En dit is toch echt een integer die als een string geparsed moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$naam
= 'Roel';
$leeftijd = (int)18;
$geld = 30000;
echo sprintf('%1$s is %2$s jaar en hij zou graag &euro; %3$s op zijn rekening hebben.', $naam, $leeftijd, number_format($geld, 0, ',', '.'));
?>
 
Ozzie PHP

Ozzie PHP

07/03/2012 12:05:38
Quote Anchor link
Wouter J op 07/03/2012 11:59:47:
Het verschil is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$str
= 'Jan is '.$leeftijd;
// tegen
$str = 'Jan is'.(string) $leeftijd;
?>

Tot zover begrijp ik het. Maar wat is het verschil in de uitkomst? Beiden geven toch hetzelfde resultaat? Zijn er situaties waarin het resultaat kan verschillen?
 
Kees Schepers

kees Schepers

07/03/2012 12:18:09
Quote Anchor link
Ja, als je bijvoorbeeld dit doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo true;
?>


Krijg je niks terug. Als je het als volgt doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo (string)true;
?>


Krijg je '1' terug, dus in sommige gevallen kan het handig zijn. Of als je een object echo'd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class User {
  protected $name;

  public function __construct($userName) {
    $this->name = $userName;
  }

  public function __toString() {
    return $this->name;
  }
}


$user = new user('Kees!');

echo (string)$user; //Kees!
?>
 
Ozzie PHP

Ozzie PHP

07/03/2012 12:20:46
Quote Anchor link
Oké, dat begrijp ik.

Maar dit levert toch in beide gevallen hetzelfde op?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$leeftijd
= 10;

echo sprintf('Ik ben %s.', $leeftijd);
echo sprintf('Ik ben %d.', $leeftijd);
?>
 
Kris Peeters

Kris Peeters

07/03/2012 13:03:09
Quote Anchor link
De vraag is dus: waarom en wanneer?



* Waarom gebruiken? om onderdelen te scheiden. php uit strings halen.

Ik vind het ideaal bij sql-strings.
bv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$sql
= "SELECT id, username FROM users WHERE id=%d OR email='%s' ";
$res = mysql_query(sprintf(
  $sql,
  $_POST['id'],
  mysql_real_escape_string($_POST['mail'])
));
...

?>


Het punt is vooral: die $sql is een string die je kan bijhouden.
Je kan dit bijhouden en hergebruiken, onafhankelijk van de variabelen die je nodig zal hebben. De ene keer kan het $_POST['mail'] zijn, de andere keer $_POST['email'] ...
Je ziet ook in 1 oogopslag wat de sql string probeert te doen, zonder je eerst door al die , '". beveilig($var) '" ...
Je kan een generieke INSERT string als commentaar zetten in je mySQL tabel. Gemakkelijk te copy/pasten, weinig aan te passen ... voor hergebruik.

Met die ene functie sprintf heb je al bijna een template engine op zich.

Je maakt een template van je sql strings; op het juiste moment vul je de data in.

Als je dus een argument wil over het waarom ... om de zelfde redenen waarom iemand templates zou gebruiken.

Trouwens, ook bruikbaar op deze manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
echo sprintf(
'<html><head><title>%s</title> ... </head><body>%s</body></html>',   // maar dan je volledige html-opmaak.  Wat niet gemeenschappelijk is, daar plaats je een placeholder
$title,
$body
);
?>


* wanneer?
Op vrij veel plaatsen.
Ik denk dat vrij veel standaard php-functies gewoon sprintf gebruiken.
bv.
money_format, str_pad, datum parsen (bv. zien dat de dag en maand twee karakters bevatten), ...

Al dat soort dingen kan je vervangen door een sprintf.


En: het komt vanuit C. In C was dit zowat de enige manier om een getal als string op je scherm te tonen.
Het is dus vrij generiek, ook buiten php
Gewijzigd op 07/03/2012 13:03:33 door Kris Peeters
 
Ozzie PHP

Ozzie PHP

07/03/2012 13:12:33
Quote Anchor link
Thanks Kris! Da's nog eens een mooie uitleg :)
Ik zal voortaan dan ook maar sprintf gaan gebruiken overal waar ik een string aan variabelen moet vastknopen. Weer wat geleerd! :)
 
Kris Peeters

Kris Peeters

07/03/2012 13:37:50
Quote Anchor link
Ik voel me soms wel de enige die dit graag en veel gebruikt in php.
De mensen gaan dus misschien wel eens vreemd opkijken als ze dat zien staan.
Als dat je niet tegenhoudt ...
Gewijzigd op 07/03/2012 13:38:38 door Kris Peeters
 
Ozzie PHP

Ozzie PHP

07/03/2012 13:44:18
Quote Anchor link
Nee hoor, dat houdt me zeker niet tegen ;)
 
Ozzie PHP

Ozzie PHP

12/03/2012 14:37:25
Quote Anchor link
Ozzie PHP op 07/03/2012 11:57:39:
Wouter J op 07/03/2012 11:50:28:
Het is beter om een %d te gebruiken want dan voeg je hem in als een int en dan wordt er doormiddel van type juggling besloten dat de int een string moet worden, als je een string opgeeft wordt de string eerst getypecast en dan pas toegevoegd.

Wouter, kun je hier een voorbeeldje van geven wat precies het verschil is / zou kunnen zijn?



Ozzie PHP op 07/03/2012 12:05:38:
Wouter J op 07/03/2012 11:59:47:
Het verschil is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$str
= 'Jan is '.$leeftijd;
// tegen
$str = 'Jan is'.(string) $leeftijd;
?>

Tot zover begrijp ik het. Maar wat is het verschil in de uitkomst? Beiden geven toch hetzelfde resultaat? Zijn er situaties waarin het resultaat kan verschillen?



Ozzie PHP op 07/03/2012 12:20:46:
Oké, dat begrijp ik.

Maar dit levert toch in beide gevallen hetzelfde op?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$leeftijd
= 10;

echo sprintf('Ik ben %s.', $leeftijd);
echo sprintf('Ik ben %d.', $leeftijd);
?>


Kan iemand hier wellicht nog wat duidelijkheid over verschaffen wat Wouter bedoelt?
 
Wouter J

Wouter J

12/03/2012 16:11:53
Quote Anchor link
Type casting
Met typecasten wijs je doormiddel van (<type>) een type toe aan een waarde. Je kan hiermee forceren wat voor waarde het wordt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
var_dump(true); // bool(true)
var_dump((string) true); // string(1)
var_dump(12); // int(12)
var_dump((string) 12); // string('12')
?>


Type juggling
Type juggling is een leuke bijkomstigheid die in elke taal zit. Type juggling gebruik je als je iets met 2 verschillende types gaat doen. Hierdoor wordt 1 van de 2 types omgewisseld voor het andere type string.bool wordt bijv. string.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$foo
= "2";

var_dump($foo); // string('2')

$foo += 2; // string + int = int
var_dump($foo); // int(4)

var_dump($foo + ' Bar'); // string + int = int dus int(4)

var_dump($foo . ' Bar'); // string . int = string dus string('4 Bar')
?>


Je ziet hier doordat je iets met 2 verschillende types doet (in dit geval optellen en bij elkaar plakken) 1 van de 2 types veranderd in de andere. Welke naar welke veranderd wordt bepaald door de operator en de types.




En nu dit betrekken op het voorbeeld wat ik hiervoor gaf:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// string . int = string
// dus 26 wordt door typecastening 1 string met 'Jan is '
// => string('Jan is 26')

echo 'Jan is '.26;

// eerst wordt 26 getypecast naar een string
// dan krijg je string . string = string (dit is geen type juggling)
// => string('Jan is 26')

echo 'Jan is '.(string) 26;
?>
Gewijzigd op 12/03/2012 16:14:28 door Wouter J
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.