13. marts 2008 - 14:00Der er
22 kommentarer og 1 løsning
forklaring ønskes
Kode følger nedenfor men først forklaring.
$quarterid er bare et id, som bruges til opslag i database $report er et object med forskellige felter Report::get_report returnerer et object eller null $quarter er et objekt get_report_field returnerer 0, hvis $report er null, ellers returnerer den en værdi af en variabel fra $report.
jeg får fejlen: Catchable fatal error: Object of class Report could not be converted to string in C:\Bestillingssystem\www\reporting.php on line 348, som er den sidste linie af det jeg har indsat nedenfor. Hvorfor nu det ?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
nej, det vil den nemlig ikke, som forventet... så hvorfor forsøger "den" at konvertere det til en string i det kald? Det virker fint udenfor <<<HTML blokken
Den konverterer til en streng, fordi det skal bruges som en streng. Og før ca. PHP 5.2 skete der en automatisk konverering (jeg kan ikke huske hvad der kom til at stå). Nu kommer der en fejl. Så:
1) Er du sikker på det skal være et objekt på det sted? 2) Man kan lave en __tostring (er det sådan den hedder?) som vil blive brugt i sådan et til fælde.
1) ja, jeg har jo selv lavet det hele, og det fungerer udenfor <<<HTML 2) jeg kan godt prøve at lave det, men min funktion forventer jo et objekt,frem for et tekststrengsrepræsentation af objektet...
jeg har før kaldt funktioner på objekter i <<<HTML blokke (og det er jo også gjort andre steder i ovenstående kode), men jeg har dog aldrig før brugt et objekt som parameter også... måske det bare ikke er lovlig kode.
Tror dig ikke. Nedenfor giver det en fejl, men kalder du o2 i stedet for går det godt. Problemet er alene hvad funktionen afleverer - men vi må jo ikke se din ;)
<?php
class bumsemand {
public function hent() {
return "Bumsen"; }
public function f() { return new bumsemand(); }
public function o1($o) { return $o; } public function o2($o) { return $o->hent(); }
den skriver jo også løst oversat "objekt af klassen report kunne ikke konverteres til en string". Så det har vel næppe noget at gøre med returværdien af get_report_field... men jeg kan selvfølgelig tage fejl :)
Yeps, skylder dig en appelsin. Med eller uden mug - men du må selv hente den ;)
Det er jo fordi .... fanfare .... at du ikke kan kalde globale funtioner i {....}-ere. Du kan kun bruge konstruktionen: {$.....}, hvor du så til gengæld kan kalde metoder/funtkioner i objekter.
Hvad med at smide det ind i nogle variabler inden din lange HTML-streng?
ja, det er også min sidste udvej, men skulle jo lige være sikker på, det ikke var mig der var helt dum. Har 32 variabler, som jeg (hvis det nu var muligt) helst ville undgå at skulle erklære.
Jeg var ikke klar over det med man ikke kan kalde globale funktioner i {}, så tak for opklaringen. Smid et svar, hvis du vil have point.
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.