Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z referencją
-mikolaj1982-
post 24.04.2011, 12:47:58
Post #1





Goście







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ź!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
darko
post 24.04.2011, 12:53:28
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


nie
$this->$id_imprezy
ale
$this->id_imprezy
a referencja nie jest Ci tu to niczego potrzebna

Ten post edytował darko 24.04.2011, 12:54:54


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
-mikolaj1982-
post 24.04.2011, 20:11:07
Post #3





Goście







<?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?
Go to the top of the page
+Quote Post
matx132
post 24.04.2011, 20:15:28
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował matx132 24.04.2011, 20:15:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:33