Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dostęp do klasy
mareczek2
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.04.2007

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


  1. <?php
  2. class klasa {
  3. public function zrobcos() {
  4. //kod
  5. }
  6. }
  7. class klasaPierwsza {
  8. public function wykonaj() {
  9. $tmp = new klasa();
  10. $tmp->zrobcos();
  11. }
  12. }
  13. class klasaDruga {
  14. public function wykonaj() {
  15. $tmp = new klasa();
  16. $tmp->zrobcos();
  17. }
  18. }
  19. ?>

Witam,
potrzebuję zrobić coś takiego, żeby klasaPierwsza miała dostęp do 'klasa', a klasaDruga już nie, czyli potrzebuje czegoś takiego:
  1. <?php
  2. class klasa {
  3. function __construct() {
  4. if(wywolane z != klasaPierwsza) exit;
  5. }
  6. public function zrobcos() {
  7. //kod
  8. }
  9. }
  10. class klasaPierwsza {
  11. public function wykonaj() {
  12. $tmp = new klasa();
  13. $tmp->zrobcos();
  14. }
  15. }
  16. class klasaDruga {
  17. public function wykonaj() {
  18. $tmp = new klasa();
  19. $tmp->zrobcos();
  20. }
  21. }
  22. ?>

macie może jakiś pomysł jak to zrobić?


EDIT (co do wyjaśnienia):
mam kod taki jak ten u góry:
jest sobie klasa o nazwie "klasa" i problem jest w tym, że instancję tej klasy można robić z każdego miejsca, a chciałbym, aby jej instancję można było robić tylko z określonych innych klas.

Ten post edytował mareczek2 30.04.2007, 21:21:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
devnul
post
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


da się da - troche pomyślunku (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2. class klasa {
  3. function __construct(){
  4. try {
  5. throw new Exception("asd",1234);
  6. } catch (Exception $e){
  7. var_dump($e);//tej linijce się przyjzyj o rozszerz
  8. }
  9. }
  10. public function zrobcos() {
  11. //kod
  12. }
  13. }
  14. class klasaPierwsza {
  15. public function wykonaj() {
  16. $tmp = new klasa();
  17. $tmp->zrobcos();
  18. }
  19. }
  20. class klasaDruga {
  21. public function wykonaj() {
  22. $tmp = new klasa();
  23. $tmp->zrobcos();
  24. }
  25. }
  26. $k1=new klasaPierwsza();
  27. $k1->wykonaj();
  28.  
  29. $k2=new klasaDruga();
  30. $k2->wykonaj();
  31. ?>

pewnie da się to zrobić inaczej - ale jakoś tylko to mi w tej chwili do głowy przychodzi. oczywiscie gotowca nie ma ale jest wskazówka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

//edit : dla jasności - nie chodzi mi o wykorzystanie wyjątków - tylko mozliwości trasowania która jest zaimplementowana między innymi tam debug_backtrace()

Ten post edytował devnul 30.04.2007, 22:44:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 21:17