Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 692
Sur og sarkastisk
droppboks's Avatar
Ok, nytt forsøk!

Finnes det noen måte å bruke C++ lignende syntax i PHP?

F. eks i stedet for å skrive:

Kode

class foobar
{
	public function setBar($baz)
	{
	$bar = $baz;
	}

	public function getBar()
	{
	return $bar;
	}

	private $bar;
}

$foo = new foobar;
$foo->setBar("foz");
echo $foo->getBar();
kan skrive

Kode

class foobar
{
	public:
	function setBar($baz);
	function getBar();

	private:
	$bar;
}; //trenger ikke bruke semikolon, men siden det er det i C++ tar jeg det med.

foobar::setBar($baz)
{ $bar = $baz; }

foobar::getBar()
{ return $bar; }

$foo = new foobar //eller "foobar $foo" samme det
$foo.setBar("foz");
echo $foo.getBar();
Håper dere skjønner spørsmålet, og om det ikke finnes, er det vanskelig/umulig og skrive noe slikt selv?

(Er en bitteliten mulighet for at det går siden enkelte template system tillater at du skriver {$var} for variabler inni HTMLen)

Hvis det ikke finnes eller er VELDIG vanskelig/umulig å lage for jeg vel bite i det sure eplet og benytte standard "PHP-OOP"

Har googlet ol. men er ikke helt sikker på hvilke søkeord som er relevante

på forhånd: takk for svar (og si ifra om jeg har formulert meg dårlig!)
Såvidt meg bekjent er syntaksen i php for metoder til klasser det samme som om du ville laget inline-metoder i C++. Så du skriver deklarasjonen og implementasjonen til en metode i klassen og ikke utenfor.

I tillegg bruker man operatøren new for instansiering og behandler objektet som det skulle vært en peker i C++ med -> for å nå en metode eller variabelmedlem.

foobar $foo ville ikke vært det samme som $foo = new foobar først og framst fordi det ikke er godkjent syntaks og du behandler det med punktum istedet for -> som er en logisk brist. foobar $foo ville satt det på stacket, og ville forutsatt punktum for å nå metoder.
Sist endret av m0b; 18. februar 2010 kl. 15:29.
Sur og sarkastisk
droppboks's Avatar
Trådstarter
Og det finnes ingen måte å gjøre dette på? (tenker på at enkelte template systemer har omgjort fra <?php ?> til klammeparentes, jaja... Får vel starte med standard php oop da.
Det er vel laget med en del parsing av filer. Du må nesten se på kildekoden til de systemene du snakker om, for å se på hvordan det implementeres. Du kan jo alltids patche PHP selv til å lage noen slik funksjonalitet, da det er opensource!
Sur og sarkastisk
droppboks's Avatar
Trådstarter
Sitat av |d13m0b Vis innlegg
Det er vel laget med en del parsing av filer. Du må nesten se på kildekoden til de systemene du snakker om, for å se på hvordan det implementeres. Du kan jo alltids patche PHP selv til å lage noen slik funksjonalitet, da det er opensource!
Vis hele sitatet...
Hmm... joda, tenkte på muligheten til å endre kildekoden, men da kommer det vel til og bare virke på min PC?

Skal laste ned et sånt system nå
Det har ikke noe å si, det ligger i arkitekturen av et server-side språk. Alle endringer i PHP du måtte finne på å gjøre vil være lik for absolutt alle som besøker en gitt side. PHP eksekveres på serveren og nettleserne mottar kun ferdig prosessert resultat av koden.
Sur og sarkastisk
droppboks's Avatar
Trådstarter
Sitat av |d13m0b Vis innlegg
Det har ikke noe å si, det ligger i arkitekturen av et server-side språk. Alle endringer i PHP du måtte finne på å gjøre vil være lik for absolutt alle som besøker en gitt side. PHP eksekveres på serveren og nettleserne mottar kun ferdig prosessert resultat av koden.
Vis hele sitatet...
Vet det, men det betyr at jeg må hoste serveren selv (evt. dedicated) og ikke webhotell, tror jeg tar og benytter "PHP"-formen jeg takk for svar though.