Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z referencją
Forum PHP.pl > Forum > Przedszkole
mikolaj1982
Witajcie! Potrzebuję pomocy w temacie przekazywania argumentów funkcji przez referencję. Mam projekt "System zarzadzania imprezami turystycznymi", który piszę w OOP PHP. Mam dwa pliki: pierwszy("Ustaw_pola.php") zawierający deklarację zmiennych i oraz funkcje get i set dotyczące tych zmiennych następującej treści:

<?php


class ustaw_pola
{

//deklaracje
private $id_imprezy;

//gettery i settery
public function setId_imprezy($id_imprezy, $new_value)
{ $this->$id_imprezy = &$new_value; }

public function getId_imprezy(&$id_imprezy)
{ return($this->$id_imprezy); }

}

?>

oraz drugi plik("testowa.php") następującej treści:

<?php
require("Ustaw_pola.php");

class testowa extends Ustaw_pola
{

}
$id_imprezy=1;
$new_value=24;
$test1=new Ustaw_pola();
echo "<html><head></head><body>";
$test1->getId_imprezy($id_imprezy);
$test1->setId_imprezy(&$id_imprezy, '24');
print $id_imprezy;
echo "</body></html>";
?>

W funkcji set chcę ustawić wartość $id_imprezy na 24, a ciągle wynik mi zwraca wartość 1. Dlaczego?? Byłbym wdzięczny za jakąś podpowiedź!
darko
nie
$this->$id_imprezy
ale
$this->id_imprezy
a referencja nie jest Ci tu to niczego potrzebna
mikolaj1982
<?php
require("Ustaw_pola.php");

class testowa extends Ustaw_pola
{


}
$id_imprezy=1;
$new_value=24;
$test1=new Ustaw_pola();
echo "<html><head></head><body>";

$test1->getId_imprezy($id_imprezy);
$test1->setId_imprezy(1, 24);
print $id_imprezy;
echo "</body></html>";


?>

oraz:
klasa "Ustaw_pola.php":

<?php

class ustaw_pola
{
private $id_imprezy;

public function setId_imprezy($id_imprezy, $new_value)
{ $this->id_imprezy = $new_value; }

public function getId_imprezy($id_imprezy)
{ return($this->id_imprezy); }
}
?>

ale nadal mam wynik zwracany jako 1, zamiast 24. Co jest jeszcze nie tak?
matx132
nie zwróci ci innego wyniku bo drukujesz zmienną zawarta w głównym pliku gdzie przypisujesz do niej wartość 1

a pro po najpierw powinieneś ustawiać id a potem chyba pobierać?

pozatym jak już chcesz to zmienić z private na public i daj
  1. print $test1->id_imprezy;



edit//
@-mikolaj1982-
Używaj znaczników php
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.