dat moet wel, aangezien je niet altijd files uit de upload_tmp_dir mag lezen (oa. als safe mode aanstaat of open_basedir ingesteld is) en je dus eerst move_uploaded_file moet aanroepenquote:Op maandag 26 maart 2012 22:14 schreef kucher het volgende:
Je hoeft het niet te verwijderen, dat doet PHP zelf al.
Goede site, tutorials zijn lekker uptodate (zoals het hoort). Dit durf ik tenminste te geven aan een beginner! Zeker een aanrader.quote:Op dinsdag 27 maart 2012 16:50 schreef Dalando het volgende:
Ik kwam deze tegen en ik dacht ik laat hem even hier achter, misschien goed voor in de OP.
http://phptuts.nl/home/
Sarcastisch?quote:Op dinsdag 27 maart 2012 18:14 schreef totalvamp het volgende:
[..]
Goede site, tutorials zijn lekker uptodate (zoals het hoort). Dit durf ik tenminste te geven aan een beginner! Zeker een aanrader.
Nee, anders zou ik wel zeggen dat de site klote is... en dat holbewoners zelfs niet gebruik maakten van globals.quote:
Ik zag tuts uit 2008 staan, dus daarom mijn twijfels.quote:Op dinsdag 27 maart 2012 18:22 schreef totalvamp het volgende:
[..]
Nee, anders zou ik wel zeggen dat de site klote is...
De laatste tutorial stamt uit eind 2009. Ik kan dat nou niet bepaald 'up-to-date' noemen...quote:Op dinsdag 27 maart 2012 18:22 schreef totalvamp het volgende:
[..]
Nee, anders zou ik wel zeggen dat de site klote is...
Als je kijkt zie je dat de techniek die gebruikt wordt gewoon goed is. Ik had eerst ook mijn twijfels erover, maar zeker voor een beginner is dit een betere start dan een PHP for Dummies boek.quote:Op dinsdag 27 maart 2012 18:23 schreef The_Terminator het volgende:
[..]
De laaste tutorial stamt uit eind 2009. Ik kan dat nou niet bepaald 'up-to-date' noemen...
Momenteel is PHP6 nog niet wijdverbreid.quote:Op dinsdag 27 maart 2012 18:23 schreef Pino112 het volgende:
[..]
Ik zag tuts uit 2008 staan, dus daarom mijn twijfels.
Dat wel, maar om dat een beginner te gaan leren alhoewel misschien is namespacing wel een goede startquote:Op dinsdag 27 maart 2012 21:32 schreef kucher het volgende:
PHP6 is dood, maar het verschil tussen 5.2 en 5.4 is wel groot.
namespaces is iets van PHP 5.3. Als je iets typisch PHP 5.4 als vorobeeld wilt geven, kun je bijvoorbeeld traits nemen. Maar om dat nou bij een beginner uit te leggen, lijkt me niet slim...quote:Op dinsdag 27 maart 2012 22:49 schreef totalvamp het volgende:
[..]
Dat wel, maar om dat een beginner te gaan leren alhoewel misschien is namespacing wel een goede start
Ik zie het nut van namespaces bij PHP niet helemaal in. Je moet de bestanden toch includen dus die tijd ben je al kwijt. Als PHP goed omgaat met niet geheel inlezen van de bestanden totdat de namespace wordt aangeroepen, dan heeft het wel een voordeel aangezien hij dan pas gaat inlezen wat hij nodig heeft.quote:Op dinsdag 27 maart 2012 22:49 schreef totalvamp het volgende:
[..]
Dat wel, maar om dat een beginner te gaan leren alhoewel misschien is namespacing wel een goede start
Het nut is dat je nooit meer 2 dezelfde classes kan aanroepen. Aangezien er meerdere classes kunnen bestaan met dezelfde naamgeving is dat dus handig. Ook hoeft includen dus niet meer. voor mijn huidige applicatie is dit perfect!quote:Op woensdag 28 maart 2012 09:16 schreef Pakspul het volgende:
[..]
Ik zie het nut van namespaces bij PHP niet helemaal in. Je moet de bestanden toch includen dus die tijd ben je al kwijt. Als PHP goed omgaat met niet geheel inlezen van de bestanden totdat de namespace wordt aangeroepen, dan heeft het wel een voordeel aangezien hij dan pas gaat inlezen wat hij nodig heeft.
Enige wat ik trouwens van PHP zag dat nog een verbetering was is het gebruik van woord "static" n functies. Dat hij het afdwingt deze functies beter te gebruiken. Liever had ik punten gezien als:
• betere type casting $var1 = string en blijft een string, niet dat het halvewege de code ineens een integer kan worden.
• Return types in functie name, zodat je precies weet wat je terug krijgt.
• Verplicht parameter types opgeven
• Functie overloading
Hoe weet PHP dan waar de classes staan als includen niet meer hoeft?quote:Op woensdag 28 maart 2012 16:11 schreef totalvamp het volgende:
[..]
Het nut is dat je nooit meer 2 dezelfde classes kan aanroepen. Aangezien er meerdere classes kunnen bestaan met dezelfde naamgeving is dat dus handig. Ook hoeft includen dus niet meer. voor mijn huidige applicatie is dit perfect!
Weet ik, maar waar ik op doel is dat het volgende mogelijk is zonder foutmeldingquote:static methods bestaat al een tijdje hoor
1 2 3 4 5 6 7 8 9 10 11 | <?php class Foo { public function Bar() { echo "Foo::Bar!!!"; } } Foo::Bar(); ?> |
quote:Ik ben het wel eens met je dat method parameter types aangegeven moeten kunnen worden in een interface/abstract class.
Dit kan in PHP niet:quote:overloading bestaat al
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php class Foo { public function Bar(PrimaryClass $var) { // do something } public function Bar(SecondaryClass $var) { // do something } public function Bar(TertiaryClass $var) { // do something } } ?> |
Commentaar dwingt het niet af en dat zou wel ideaal zijn. Ook voor het opvoeden van de programmeur die wordt dan gedwongen om goed om te gaan met types.quote:waarom zou je return types in de functienaam willen? Je hoort gewoon iets terug te geven en dat zet je in een comment boven de functie.
Ik maak zelf gebruik van een autoloader (zoals je normaal ook zou hebben).quote:Op woensdag 28 maart 2012 19:37 schreef Pakspul het volgende:
Hoe weet PHP dan waar de classes staan als includen niet meer hoeft?
Dat is toch logisch? het voordeel van static is dat er geen instance gemaakt hoeft te worden van de class. Dit is gewoon zoals het hoort imo.quote:Weet ik, maar waar ik op doel is dat het volgende mogelijk is zonder foutmelding
[ code verwijderd ]
Dit mag niet, static moet er bij anders klopt het gewoon niet.
overloading houdt iets anders is.quote:Dit kan in PHP niet:
[ code verwijderd ]
Wat wel heel handig is.
Ik neem dan aan dat je zoiets zou willen:quote:Commentaar dwingt het niet af en dat zou wel ideaal zijn. Ook voor het opvoeden van de programmeur die wordt dan gedwongen om goed om te gaan met types.
1 2 3 4 5 | <?php function foo(int $int, @return string) { return 'het getal is: '.$int; } |
Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.quote:Op woensdag 28 maart 2012 20:03 schreef totalvamp het volgende:
[..]
Ik maak zelf gebruik van een autoloader (zoals je normaal ook zou hebben).
Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.quote:[..]
Dat is toch logisch? het voordeel van static is dat er geen instance gemaakt hoeft te worden van de class. Dit is gewoon zoals het hoort imo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php class String { public $Value; public function __construct($val) { $this->Value = $var; } public function ConCat(String $var) { return new String($this->Value . $var->Value); } public static function ConCat(String $v1, String $v2) { return new String($v1->Value . $v2->Value); } } $query = new String('SELECT '); $query = $query->ConCat(new String('FROM '); $query2 = String::ConCat(new String('SELECT '), new String('FROM ')); ?> |
Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloadingquote:
Liever op de c# manierquote:[..]
Ik neem dan aan dat je zoiets zou willen:
[ code verwijderd ]
dat zou inderdaad wel van pas komen.
1 | public int Drive(int miles, int speed) { return 0; } |
Ja maar het aanroepen van de class gaat dus anders Op namespace en niet op naam en die kijkt in een folder etc.quote:Op woensdag 28 maart 2012 20:13 schreef Pakspul het volgende:
[..]
Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.
Je kunt in static functies gebruik maken van self::quote:Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.
[ code verwijderd ]
Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen ), maar je niet zomaar een static functie als een normale functie gebruiken. Dan komt het overloaden verhaal weer om de hoek kijken.
Hmm interessant, ik kan begrijpen waarom je dat zou willen ja. Nu ik erover nadenk... waarom ik dat wel zou willenquote:Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading
Ik zou het dan liever zo zien, ik vind het wel fijn als er ook echt function bij staatquote:Liever op de c# manier
[ code verwijderd ]
1 | public function int Drive() |
1 2 3 4 5 6 7 8 9 10 | <?php namespace Traffic\System\Core; function Autoloader($className) { //echo 'The following class was loaded:'. $className. '<br />'; $className = str_replace('\\', DIRECTORY_SEPARATOR, $className) . '.php'; require $className; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php require 'Traffic/System/Core/Autoloader.php'; spl_autoload_register('\\Traffic\\System\\Core\\Autoloader'); define('DIRSEP', DIRECTORY_SEPARATOR); // database test $db = new Traffic\System\Core\Database(); $view = new Traffic\Views; // New grid $grid = new Traffic\Grid(); $grid->addRoad(new Traffic\Roads\Sides\Topside, $coords = array(5,4)); $grid->addRoad(new Traffic\Roads\Sides\BottomSide, $coords = array(5,5)); // etc ?> |
Weet ik, maar dat zijn wel twee verschillende dingen en die gebruik je niet door elkaar heen. Als je statische functies gebruikt mag $this niet voorkomen en dat is in PHP nu wel mogelijk.quote:Op woensdag 28 maart 2012 20:21 schreef totalvamp het volgende:
[..]
Ja maar het aanroepen van de class gaat dus anders Op namespace en niet op naam en die kijkt in een folder etc.
[..]
Je kunt in static functies gebruik maken van self::
Extra type werk de ( ) geeft al aan dat het een functie isquote:[..]
Hmm interessant, ik kan begrijpen waarom je dat zou willen ja. Nu ik erover nadenk... waarom ik dat wel zou willen
[..]
Ik zou het dan liever zo zien, ik vind het wel fijn als er ook echt function bij staat
[ code verwijderd ]
Snap het idee, maar ben benieuwd of introductie van namespaces ook invloed heeft op performance.quote:Voorbeeldje van mijn autoloader:
[ code verwijderd ]
Hoe ik in bestanden iets aanroep:
[ code verwijderd ]
EDIT: de FoK! php highlight ondersteunt nog geen namespaces
Tja er kloppen wel meer dingen niet (qua logica) in PHP.quote:Op woensdag 28 maart 2012 20:26 schreef Pakspul het volgende:
[..]
Weet ik, maar dat zijn wel twee verschillende dingen en die gebruik je niet door elkaar heen. Als je statische functies gebruikt mag $this niet voorkomen en dat is in PHP nu wel mogelijk.
[..]
Extra type werk de ( ) geeft al aan dat het een functie is
[..]
Snap het idee, maar ben benieuwd of introductie van namespaces ook invloed heeft op performance.
1 2 3 | <?php final static public int function Foo(); ?> |
Ik zie niet zo snel het voordeel ervan in tegenover een eigen class maken.quote:Op woensdag 28 maart 2012 20:36 schreef Pakspul het volgende:
En als we dan toch nog even bezig zijn fields mogen ook toegevoegd worden.
http://msdn.microsoft.com/en-us/library/ms173118.aspx
Fokking ideaal!
Ik vind die code lelijk, maar dat komt vooral omdat functienamen en propertyname met een hoofdletter beginnen. Da's wel gebruikelijk voor class names, niet voor andere dingen. En die static functie heb je niet nodig als je dit kunt doen:quote:Op woensdag 28 maart 2012 20:13 schreef Pakspul het volgende:
[..]
Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.
[..]
Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.
[ code verwijderd ]
Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen ), maar je niet zomaar een static functie als een normale functie gebruiken. Dan komt het overloaden verhaal weer om de hoek kijken.
1 2 3 | <?php $query = new String('SELECT ')->concat(new String ('FROM ')) ?> |
In PHP kun je een functie maken die optionele parameters heeft. Dat is vergelijkbaar met je overloading voorbeeld.quote:Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading
Ik vraag me af of er dynamically typed talen zijn waar dat in werkt.quote:Liever op de c# manier
[ code verwijderd ]
Je kunt checks uitvoeren op je class variabelen. Of readonly variabelen maken.quote:Op woensdag 28 maart 2012 20:40 schreef totalvamp het volgende:
[..]
Ik zie niet zo snel het voordeel ervan in tegenover een eigen class maken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class { protected DateTime _Birthday; public DateTime BirthDay { set { if ( value > DateTime.Now ) { // geboortedatum ligt in de toekomst dat kan niet throw new ArgumentOutOfRangeException(); } this._Birthday = value; } get { return this.Birthday; } } public int Age { get { TimeSpan diff = DateTime.Now - this._Bithday; return (int) Math.Floor(diff.Days / 365.25); } } } |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |