I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvis ikke du anvender arv, bliver du nødt til at anvende assosciering. I dit eksempel er det jo det ydre objekt a du gerne vil have til at tilgå det indre objekts b metode sig_hej og så skal det indre objekt b tilgå det ydre objekt a's property. Dette lan godt lade sig gøre ved hjælp af binær assosciering, men umiddelbart vil jeg tro der er en mere elegant løsning. Kan du ikke forklare hvad det er du vil opnå?
<? class Outer { var $id;
function Outer($id) { $this->id = $id; } }
class Inner { var $owner;
function Inner($owner) { $this->owner = $owner; }
function do_something() { echo("Hello my parent is " . $this->owner->id); } }
jeg har en data struktur der indeholder en hjemmeside,
class Page { function Page($uniq_id) { $this->id = $uniq_id(); } function set_title($title) { $this->title = $title; } // etc etc for andre egenskaber, som forfatter,dato etc
function add_paragraph($title,$text,$description,$author) { $this->paragraph[] = new Paragraph(); } function import_template($template_text) { $this->template = $template_text); } function parse() { // løber template teksten igennem efter specielle tags, der udskiftes // med objektets egenskaber, eks. '<!-- #this:title# -->' bliver // udskiftet med $this->title } }
class Paragraph { // ligner Page, bare andre properties }
- så er det, at hvert enkelt underelement har sin egen parse() funktion, og sin egen template, men det skal gerne være muligt i Paragraph's template at referere til Page properties, og så skal parseren i et indre paragraph objekt kunne tilgå det ydre Page objekts properties..
Så bliver du nødt til at anvende assosciering som i mit ovenstående eksempel. Så skal du når du opretter objeketer der er underordnet et andet objekt sende en owner parameter med som du så gemmer i objeketet og som du så kan tilgå!
eler rettere ... lade det alle objekter have et array af children, som hver parse-metode kalder. (det syntes umiddelbart mest rationelt at bede Page om at rendere, og så forvente at den håndtere sine delelementer, som igen håndterer sine)
tak, du fik ret - det jeg endte med, der virkede, var at page->parse() hver gang den mødte et <!-- #paragraph:template# --> bad alle children om at parse en separat template og returnere det så det kunne indsættes. Simpelt når først man ser det :)
- kan du ikke lige svare etellerandet?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.