Dann Pedersen wrote:
> "Per Thomsen" <pert@pert.dk> wrote in message
> news:3D6ABDC6.2070204@pert.dk...
>
[snip]
>
> Det skulle det - ellers vil du lave en ny variabel med lokalt scope til den
> enkelte funktion - når den så var færdig med at blive kørt ville indholdet
> være tabt.
>
Øh.. ja... det var også det jeg mente.
Altså at
$bar = "hejsa";
virker ikke men,
$this->bar = "hejsa";
virker.
Det er vi nu nok enige om og det er forså vidt irrelevant for denne
tråds "hovedemne".
[snip]
>
>>Jeg ville nok foretrække at være sikker på at et objekt skal konstrueres
>>før jeg kalder constructoren.
>
>
> Helt klart også min holdning. Problemet er konkret at et objekt bliver
> genereret på baggrund af noget indhold i en database. Dem der kalder
> objektet opretter det så det repræsentere en post i en database. Hvis nu
> posten ikke eksistere, så er det problematisk at der er et objekt, der ikke
> har noget indhold. Og da det ikke er mig, der står for at oprette objekterne
> i koden, vil jeg gerne være sikker på at der er en tilhørende post i
> databasen. Det kunne være smart hvis man i constructoren kunne gøre kalderen
> opmærksom på problemet. Men det er selvf. ikke værre end at jeg i alle
> metoderne tjekker om objektet er oprettet korrekt. Eneste ulempe er så hvis
> dem der opretter objekterne ikke er pæne og benytter sig af at man ikke kan
> erklære private variable i PHP...
>
Hvis jeg forstår det korrekt, så er det sådan at nogle (ikke dig)
bladrer igennem en tabel og opretter objekter til hver række, er det
korrekt?
Du har så ansvaret for at skrive den klasse som hver række skal være en
instans af.
Ellers så har de noget indhold i en database, der gør at de ønsker at
hente noget tilhørende indhold, og derfor opretter et objekt der kan
finde ud af at hente det.
Under alle omstændigheder bør de ikke konstruere dit objekt før de ved
at der i databasen er en tilsvarende post. Det er du vist enig med mig
i, men det er de ikke, eller...? Forsøger du bare at håndtere den
situation at hvis der nu er fejl i deres kode, således at de rent
faktisk forsøger at oprette objekter som ikke har repræsentanter i
databasen?
Hvis det første er tilfældet ville jeg nok slå dem hårdt i hovedet med
noget tungt, indtil de makker ret ;).
Hvis det andet er tilfældet, ja så er det jo en fejl, og trigger_error
er den korrekte måde at håndtere det på. Medmindre selvfølgelig at i
bruger en anden metode til at håndtere fejl, men essensen er at det så
(IMHO) ville være i orden at melde en fejl, og dø.
MVH Per Thomsen,
http://www.pert.dk/