Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OOP] konstruktory...
Forum PHP.pl > Forum > Przedszkole
aleksander
jestem w trakcie poznawania OOP i testowo przerabiam mój proceduralny program na obiektowy. Mam taki kod, który sprawdza, czy w adresie są jakieś zmienne i odpowiednio przypisuje zmiennej $self "?" lub "&":
[php:1:84f191ffea]<?php
if (!empty($_SERVER["QUERY_STRING"]))
{
$self=$_SERVER["REQUEST_URI"]."&";
}
else
{
$self=$_SERVER["REQUEST_URI"]."?";
}
?>[/php:1:84f191ffea]

Chciałem tego ifa umieścić w konstruktorze, ale z przecież wtedy $self nie będzie widoczny w innych metodach. Jak więc "uglobalizować" tą zmienną?
Zbłąkany
Zajrzyj tutaj powinno pomoc 8)
rogrog
proponuję tak:

[php:1:3b83424f57]<?php

var $self;

class stronka {

function stronka(){

global $self;

if (!empty($_SERVER["QUERY_STRING"]))
{
$self=$_SERVER["REQUEST_URI"]."&";
}
else
{
$self=$_SERVER["REQUEST_URI"]."?";
}
}

}
?>[/php:1:3b83424f57]


albo



[php:1:3b83424f57]<?php

class stronka {

var $self;

function stronka(){

if (!empty($_SERVER["QUERY_STRING"]))
{
$this->self=$_SERVER["REQUEST_URI"]."&";
}
else
{
$this->self=$_SERVER["REQUEST_URI"]."?";
}
}


function getSelf(){
return $this->self;
}

}

$obiekt = new stronka();

// i teraz odwolujemy sie poprzez getSelf

$self = stronka->getSelf();
echo $self;

?>[/php:1:3b83424f57]

myślę że to drugie rozwiązanie jest lepsze
aleksander
obie odpowiedzi poprawne biggrin.gif , THX. oj jeszcze wiele sie musze nauczyc...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.