FAQ |
Kalender |
![]() |
#11 | ||
|
|||
Medlem
|
Jag löste det genom att lägga till en parameter till identeringsfunktionen. Tack för hjälp .
PHP-kod:
|
||
![]() |
![]() |
![]() |
#12 | |||
|
||||
Mycket flitig postare
|
Snyggt!
Tänk på att du kan köra $return[] = array(värden här) istället för $return[x] Bra jobbat ![]() |
|||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Klarade millennium-buggen
|
Flytta ner '{' från slutet på raden till första synliga tecken på nästa rad så det går att läsa koden. Sen tycker jag att din parameter $growth borde heta $level i stället för det är ju vad det är, en typ av "nivå" på indenteringen, eller nästningsdjupet.
Sätter du måsvingarna under varandra som jag visar i mitt exempel nedan så ser du en textuell symmetri som gör det många gånger lättare att följa flödet i strukturen än om du sätter första måsvingen i slutet på raden och den avslutande måsvingen i början av sista raden i blocket. PHP-kod:
|
||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Medlem
|
Conny, att välja vart måsvingar ska sitta och hur man ska identera kod är en smaksak. Det finns inget standardsätt att skriva sånt på. Hur bra tyckte du annars jag löste uppgiften med att sortera dem? yakuza skrev på skype att man borde såhär: http://pastebin.com/DL7kkAEi
Men tar inte det längre tid att göra fler anrop till DB än att hantera en stor array i PHP? |
||
![]() |
![]() |
![]() |
#15 | |||
|
||||
Mycket flitig postare
|
Posta hela din kod så vi kan se
![]() |
|||
![]() |
![]() |
![]() |
#16 | ||
|
|||
Medlem
|
Jag gjort det :P Eller vad mer ville du ha?
|
||
![]() |
![]() |
![]() |
#17 | ||
|
|||
Klarade millennium-buggen
|
Det går inte att testköra koden, eftersom du saknar databasconnection, och testkod.
Gör en komplett Console app som går att testköra så kan du få mer hjälp. Annars måste jag bygga en helt egen app bara för att testköra detta ..... Du bör ju göra Category till en klass med metoder för add(), remove(), load()/fetchall(), save(), move(), delete().... I klassen ska du ha en privat variabel som innehåller själva trädstrukturen, så det går att skapa fler instanser av klassen, om man nu vill göra det. Du bör ha en helt egen klass som innehåller databasconnection och som man kan göra ett static anrop till för att få den eventuellt öppna Connection som finns till databasen. För varje tabell du har i databasen gör du (minst) en egen klass (ibland behövs fler klasser för en tabell om man har en komplex struktur). Connectionklassen kan då återanvändas mellan alla dessa tabellklasser, Connection är troligen samma för hela databasen (undantag finns). PHP-kod:
PHP-kod:
PHP-kod:
Senast redigerad av Conny Westh den 2013-07-18 klockan 21:02 |
||
![]() |
![]() |
![]() |
#18 | ||
|
|||
Medlem
|
Jag uppskattar att du tog dig tid att skriva det där men det kommer blir en högre laddningstid om man ska göra instanser av varje kategori. Använd gärna mysqli eller PDO och inte mysql_*** för den är typ gammal eller nåt har jag för mig. Jag förstår verkligen inte heller varje en kategori bör ha massa metoder som jag aldrig kommer använda.
|
||
![]() |
![]() |
![]() |
#19 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Men du missar hela idén med att dela upp programmet i små funktioner. Det är skitsnack att du skulle få "längre laddtider", det kanske tar 0,00001 sekunder längre tid, tror du att en användare skulle märka skillnaden? Den stora skillnaden blir när du ska utöka funktionaliteten i programmet, du får mindre buggar, för varje funktion är enkel att använda. Om du inte vill "instanciera" så kan du göra alla funktionerna static. Men din Array måste du instanciera i vilket fall för du måste lagra den i en variabel och då har du redan instansierat arrayen. Så argumentet att det sinkar programmet är inte relevant. Men det underlättar programutvecklingen enormt mycket. Du gör ju exempelvis add() redan när du laddar upp din Array idag, det är bara att du inte gjort det till en återanvändbar funktion, så om du vill lägga till en kategori så måste du lägga till den i databasen och sen ladda om hela arrayen, då tar det tid må jag säga. Eller hur har du tänkt att använda detta program? Metoderna som jag föreslog är ju bara "standardmetoder" för att lägga till, ta bort och hämta data från kategori arrayen eller från databasen, det är i princip samma metoder du har på alla tabeller i databasen, sen kan t det finnas vissa tabeller man har fler metoder för men det bygger man ut efter behov. Bygger man det objektorienterat från början så blir det enklare att utöka och ändra allteftersom man jobbar med programmet. Konsekvensen blir at programmet blir enklare att underhålla, det går snabbare att införa förändringar och det blir mindre buggar. Det är givetvis ingen garanti men det är i vart fall min och de flesta andra OO-förespråkares erfarenhet. |
||
![]() |
![]() |
![]() |
#20 | ||
|
|||
Klarade millennium-buggen
|
Citat:
...medan ... Indent betyder "indrag"... |
||
![]() |
![]() |
Svara |
|
|