construct en properties

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Wouter J

Wouter J

02/01/2013 15:19:24
Quote Anchor link
Namen prefixen met het type ben ik altijd grote tegenstander van, PHP is een lazy-type taal en daar moet je leuk gebruik van maken en niet dat stomme strict-type van die C talen in gooien :)

Tevens vraag ik me af of $firstName = (string) null kan. PHP heeft beperkte support voor het instellen van default values bij het declareren.
 
PHP hulp

PHP hulp

27/11/2024 19:27:27
 
Ozzie PHP

Ozzie PHP

02/01/2013 15:19:53
Quote Anchor link
Haha, de alfabet tick, die heb ik ook :) (al is dat in het bovenstaande voorbeeld niet te zien)

Ik heb dat ook geprobeer met functienamen, maar dat is niet altijd handig. Dan staan je getters bijvoorbeeld voor je setters. En hoe kun je iets getten als je het nog niet geset hebt.

Ook in css probeer ik dat te doen overigens. Alleen soms kan dat niet, vanwege overerving.
 
No One

No One

02/01/2013 15:59:51
Quote Anchor link
Wouter, niet helemaal mee eens....het zou in functies wel leuk zijn als je bijvoorbeeld een array verwacht dat je dan in je functiebody gewoon aangeeft: array $var....scheelt weer een controle...wil je de standaard exceptions van php niet..dan zijn er mogelijkheden om die af te vangen en anders te tonen of te laten mailen, of je gooit hem in een try catch...de error moet buiten de functie afgehandeld worden en niet binnen de functie (al ligt dat bij OO een klein beetje anders)
 
Wouter J

Wouter J

02/01/2013 17:26:24
Quote Anchor link
Quote:
het zou in functies wel leuk zijn als je bijvoorbeeld een array verwacht dat je dan in je functiebody gewoon aangeeft: array $var....scheelt weer een controle...

Ja, dat doe ik ook (ook met object type hinting). Ik bedoelde alleen om variabele te prefixen met een type, bijv. $sName en $iAge of $stringName en $intAge.

Quote:
wil je de standaard exceptions van php niet..dan zijn er mogelijkheden om die af te vangen en anders te tonen of te laten mailen, of je gooit hem in een try catch...

PHP heeft weinig standaard exceptions. PHP werkt qua fouten nog steeds op de manier van flat scripten, lekker errors gooien. De errors zijn voorzover ik weet niet op te vangen in een try catch, je zou een eigen error_handler moeten maken die de errors omzet in de speciale errorexception.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/01/2013 19:10:26
Quote Anchor link
Wouter J op 02/01/2013 15:19:24:
Namen prefixen met het type ben ik altijd grote tegenstander van, PHP is een lazy-type taal en daar moet je leuk gebruik van maken en niet dat stomme strict-type van die C talen in gooien :)

Wat bedoel je precies?
Als je hebt over prefixen van namen van variabelen kan ik het met je eens zijn.
Maar ik vind het stict-typing (en het vooraf declareren ervan) van variabelen niet stom, sterker nog ik heb dat liever.
Gewijzigd op 02/01/2013 19:21:41 door Ger van Steenderen
 
Reshad F

Reshad F

02/01/2013 23:08:26
Quote Anchor link
Ger van Steenderen op 02/01/2013 19:10:26:
Wouter J op 02/01/2013 15:19:24:
Namen prefixen met het type ben ik altijd grote tegenstander van, PHP is een lazy-type taal en daar moet je leuk gebruik van maken en niet dat stomme strict-type van die C talen in gooien :)

Wat bedoel je precies?
Als je hebt over prefixen van namen van variabelen kan ik het met je eens zijn.
Maar ik vind het stict-typing (en het vooraf declareren ervan) van variabelen niet stom, sterker nog ik heb dat liever.



@Ger ik ben het met je eens dat

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


veel mooier is dan

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


maar elk voordeel heeft zijn nadeel. zo kan je in stricte talen zoals Java die waarde niet gelijk echoen op het scherm als bijv

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


maar dan heb je ( in java bv )

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
int var = 5;
String str = hoi;
system.out.println(str + " " + var);
?>

en dit ook met misschien andere varianten hiervan..
ik denk dat Wouter dit bedoelt? of iets in die richting?
 
Wouter J

Wouter J

02/01/2013 23:18:55
Quote Anchor link
Quote:
Maar ik vind het stict-typing (en het vooraf declareren ervan) van variabelen niet stom, sterker nog ik heb dat liever.

Het is mooier, maar soms heb ik veel liever het lazy-typing. Bijv. een filesystem klasse die zou bij remove een string met een filenaam kunnen hebben, maar ook een array met bestandsnamen. Om die variabele dan zo strict te definiëren vind ik stom.
 
- Raoul -

- Raoul -

02/01/2013 23:55:33
Quote Anchor link
Ik had eigenlijk ook liever strong typing gezien in PHP, maar dat zal helaas nooit komen omdat dan geen enkele php code meer werkt :P
 
Ozzie PHP

Ozzie PHP

06/01/2013 02:06:50
Quote Anchor link
Hey mensen,

Ik kwam net een stukje code tegen waar de class properties achter elkaar werden gedeclareerd.

Dus niet zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
class User {

    private $age;
    private $name;
    private $parents;

}

?>


maar zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
class User {

    private $age, $name, $parents;

}

?>


Ik heb het nog niet eerder gezien zo. Kan dit gewoon?
Gewijzigd op 06/01/2013 02:07:12 door Ozzie PHP
 
Wouter J

Wouter J

06/01/2013 08:51:29
Quote Anchor link
Ja, dat kan gewoon. Maar het is niet volgens de algemene PHP standaard (PSR) en daarom ga je het eigenlijk nergens zien.
 
Ozzie PHP

Ozzie PHP

06/01/2013 13:35:59
Quote Anchor link
Ah oké. Ik had het inderdaad niet eerder gezien. Het ziet er ook wel vreemd uit.
Van de andere kant neemt het wel minder ruimte in als je veel class properties hebt.
Je class wordt minder "hoog".
 
Wouter J

Wouter J

06/01/2013 13:41:00
Quote Anchor link
Ja, maar waarom het niet aangeraden wordt is om dezelfde redenen als dit artikel uitlegt waarom je in JS meerdere vars en niet var foo, bar; moet gebruiken
 
Ozzie PHP

Ozzie PHP

06/01/2013 13:49:58
Quote Anchor link
Hmmm, ik vind het toch wel typisch. Ik heb het niet helemaal doorgelezen hoor, maar in grote lijnen wordt er gezegd dat het makkelijker te onderhouden is als je ze onder elkaar zet, en dat je er makkelijker commentaar bij kunt zetten.

De 1e reactie op het artikel daarentegen, stelt als tegenargument dat er minder code getypt hoeft te worden en dat de class properties in 1x worden geparst. Dit alles zou dan weer snelheidswinst opleveren. Nou gaat dit over javascript, maar vraag me af of dat in php ook zo is.
 
Wouter J

Wouter J

06/01/2013 14:56:00
Quote Anchor link
Offtopic:
zucht... daar komt het snelheidsmonster in Ozzie weer naarboven, dacht dat ie daar vanaf was gestapt


Ozzie, als je een snel script wilt maken moet je stoppen met OO, het levert namelijk alleen maar tijdverlies op. Tevens zou zoiets zo'n extreme micro-optimalisatie zijn dat het niet eens in mij op zou komen.

En minder code typen? Dat is ook iets wat OO de eerste keer niet heeft, dus daar moet je dan ook maar vanaf. Ik bedoel, in onze Request klasse van het vorige topic hebben we nu een speciale createFromGlobals method moeten maken die we net zo goed in de constructor konden verwerken, bespaard weer heel wat tekens code.
 
Ozzie PHP

Ozzie PHP

06/01/2013 15:00:36
Quote Anchor link
Hihihi... ik moest lachen :-)))

Maar ik overweeg altijd even de voor- en nadelen. En uiteindelijk valt het kwartje dan wel de goede kant op hoor... don't worry. Hahaha... moest wel erg om je reactie lachen :D
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/01/2013 16:18:31
Quote Anchor link
Als ie maar geen cookie monster wordt ;-)
 
Ozzie PHP

Ozzie PHP

06/01/2013 16:22:08
Quote Anchor link
rrrrrrrrrrrrrrrr......

:D
 

Pagina: « vorige 1 2



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.