15. september 2006 - 13:30
Der er
6 kommentarer og 1 løsning
OOP spm
Jeg er lige begyndt på at eksperimentere med lidt OOP i php5 og er løbet ind i mit første problem. koden: OrderForm.php <?php class OrderForm { private $var; public function __construct($var) { $this->var = $var; } public function EmptyAllowed($str) { if (empty(trim($str))) { $str = "Not filled out."; return $str; } } public function CheckEmptyWhitespace() { if (empty(trim($this->var))) { $var->errorMessage("CheckEmptyWhitespace"); } else { return $this->var; } } public function errorMessage($from) { switch ($from){ case "CheckEmptyWhitespace": echo "CheckEmptyWhitespace"; break; } } } ?> bestilling.php <?php if ($_POST['submit']) { require('a-cms/core/modules/OrderForm.class.php'); $company_name = new OrderForm($_POST['company_name']); $company_name->CheckEmptyWhitespace(); $attention = new OrderForm($_POST['attention']); $attention->EmptyAllowed($attention); } ?> ...... Når jeg lader feltet 'company_name' og 'attention' stå tomt og trykker på submit kommer den med denne fejl: Fatal error: Can't use function return value in write context in '........'/OrderForm.class.php on line 10 * '........' er en erstattelse for den lange host sti. nogle der evt. kan se hvor det går galt i min kode?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
15. september 2006 - 13:32
#1
line 10 i OrderForm.class.php er: "if (empty(trim($str))) {"
Slettet bruger
15. september 2006 - 13:40
#2
Man kan ikke sige empty(trim()) :)
Slettet bruger
15. september 2006 - 13:41
#3
Det vil nok være optimalt bare at sige if(empty($str)) - Alternativt kan du sige: $str = trim($str); if(empty($str)) {
15. september 2006 - 14:05
#4
selvf... hvor jeg hader dumme fejl. når det så er rettet kommer den med: Fatal error: Call to undefined function errorMessage() in '.......'/OrderForm.class.php on line 20 hvor line 20 er: $var->errorMessage("CheckEmptyWhitespace");
15. september 2006 - 14:23
#5
Det skal jo være $this->var->errorMessage.... - $var findes ikke, og derfor kan man ikke kalde en funktion "i" den.. ;)
15. september 2006 - 14:34
#6
fangel: tæt på.. ;) if (empty($this->var)) { $message = $this->errorMessage("CheckEmptyWhitespace"); $this->var = $message; } return $this->var;
Slettet bruger
15. september 2006 - 14:44
#7
Der er ingen grund til at lave en public var ud af det: if (empty($this->var)) { $message = $this->errorMessage("CheckEmptyWhitespace"); } return $message; Og tak for points.
Vi tilbyder markedets bedste kurser inden for webudvikling