![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Otoz jest taki kawalek kodu php:
[php:1:28e0ae4307] <?php class Test { function &factory() { return new Test; } function &singleton() { static $instance; if (!isset($instance)) { $instance =& Test::factory(); } return $instance; } } $Test1 =& Test::singleton(); $Test1->aaa = 1; $Test2 =& Test::singleton(); print_r($Test1); print_r('<br>'); print_r($Test2); ?> [/php:1:28e0ae4307] i wyswietla on: Kod test Object ( [aaa] => 1 )
test Object ( ) Dlaczego ? -------------------- code.gosu.pl
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Zamień w funkcji Test::singleton:
[php:1:df19184c2f]<?php $instance =& Test::factory(); ?>[/php:1:df19184c2f] na: [php:1:df19184c2f]<?php $instance = Test::factory(); ?>[/php:1:df19184c2f] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
dlaczego jak zmienie na:
[php:1:a63316ff89] function &singleton() { if (!isset($GLOBALS['instance'])) { $GLOBALS['instance'] =& Test::factory(); } return $GLOBALS['instance']; } [/php:1:a63316ff89] to wszystko dziala ok ? Pozatym jak usune w tym przypadku ta referencje, to tez dziala ok. A w dokumentacji jest napisane, ze przy przekazywaniu obiektow referencje nalezy dac przy definiowaniu funkcji i przy jej wywolaniu ... -------------------- code.gosu.pl
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 14:37 |