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
menic
post
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


NIe wymagałoby. Poprostu sprawdzasz w konstruktorze czy przekazany obiekt jest typu ktory jest dozwolony. Mozesz to wlasnie osignac za pomocą instanceof (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Tylko własnie w tym przypadku istnieje mozliwosc "podlozenia" jakiegos bubla.

Ten post edytował menic 1.05.2007, 10:51:12
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: 10.10.2025 - 19:56