• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Deklaracja metody poza definicją klasy

Object Storage Arubacloud
+1 głos
388 wizyt
pytanie zadane 3 lipca 2015 w PHP przez Waszek Gaduła (4,130 p.)

Cześć Mistrzowie :)

Mam taką oto zagwostkę. Robię sobie taki miniprojekcik - dla samorozwoju, a może i zostanie wykorzystany przez Politechnikę :P Piszę w takim stylu, że w osobnym definiuje klasę, a potem chcę po kolei deklarować poszczególne metody tej klasy. Jednak przy deklaracji konstruktora otrzymuję błąd:

Fatal error: Non-abstract method Person::__construct() must contain body in C:\xampp\htdocs\dochod\person.php on line 11

Kod:

<?php

class Person 
{

	private $name;
	private $surname;
	private $dateOfBirth;
	private $relationship;

	public function __construct($nm, $snm, $date, $rel);
	
	public function Hello() ;

}

function Person::__construct($nm, $snm, $date, $rel) {

	$this->name = $nm;
	$this->surname = $snm;
	$this->dateOfBirth = $date;
	$this->relationship = $rel;

}

function Person::Hello() {

	echo "Cześć hello!";

}

?>

Czy ten błąd oznacza, że nie mogę tak rozbijać tego?

Czekam na odpowiedź i życzę miłego dnia! :)

2 odpowiedzi

+2 głosów
odpowiedź 3 lipca 2015 przez efiku Szeryf (75,160 p.)
wybrane 3 lipca 2015 przez Waszek
 
Najlepsza

To jest PHP, nie C++. :)

Jak każdy język, ma swoje zasady.
Ten błąd oznacza, że PHP oczekuje "ciała" dla tej metody, a jest tylko średnik.
Aczkolwiek nie możesz tego tak rozbijać, będzie błąd (T_PAAMAYIM_NEKUDOTAYIM). 
Metody definiujesz w ciele klasy.
1 klasa = 1 plik 
Dodatkowo Twoje metody nie powinny nic wyświetlać(echo) tylko zwracać wartość return.

komentarz 3 lipca 2015 przez Waszek Gaduła (4,130 p.)

Dodatkowo Twoje metody nie powinny nic wyświetlać(echo) tylko zwracać wartość return.

Nie no to wiem, rozdzielamy logikę od interfejsu komunikacyjnego :)

Dziękuję za odpowiedź :)

komentarz 3 lipca 2015 przez Waszek Gaduła (4,130 p.)
A macie może jakiś fajny link odnośnie obiektowego PHP, czyli wszystkieg tego typu smaczki :)?
0 głosów
odpowiedź 3 lipca 2015 przez Comandeer Guru (601,450 p.)
Czyli w gruncie rzeczy chcesz napisać interfejs i klasę go implementującą. Nie jest to co prawda to, co chcesz osiągnąć, ale jest tego najbliżej, a interfejsy i tak trzeba znać, żeby wiedzieć jak pisać SOLIDny kod ;)

Polecam spojrzeć na http://phptherightway.com

Podobne pytania

0 głosów
3 odpowiedzi 435 wizyt
pytanie zadane 16 czerwca 2015 w C i C++ przez tarnasm Gaduła (3,030 p.)
0 głosów
2 odpowiedzi 963 wizyt
+2 głosów
2 odpowiedzi 13,904 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...