Post
#1
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
mam taki kod[php:1:28ea0a47c9]#!/usr/local/bin/php
<?php abstract class abstr{ protected $name; abstract function __construct(); protected function name(){ return $this->name; } protected function __destruct(){ return; } } class used extends abstr { function __construct(){ $this->name="used"; } } $test=new used; print $test->name(); ?>[/php:1:28ea0a47c9]Ten kod wywala mi taki blad Cytat Fatal error: Call to protected method abstr::name() from context '' in /usr/local/apache/cgi-bin/classtest.php on line 20 Co tu jest nie tak? Z tego co wiem protected oznacza, ze metoda/wlasciwosc jest dziedziczona. Czy moze w php odnosi sie to tylko do wlasciwosci?
PS. Z tego wynika, ze __construct() wywoluje sie nie tylko przy new klasa(); ale tez przy zwyklych wywolaniach new klasa; |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
a no tak. Jeśli definiuje metode w klasie jako protected, to potem po dziedziczeniu ona nadal jest protected. Musiałbym zdefiniować inną metodę, która tą metodę wywołuje, lub zdefiniować tą matodę jako public w klasie nadrzędnej albo po prostu ją nadpisać w klasie podrzędnej...
|
|
|
|
Jabol problem z protected 11.05.2003, 09:26:31
php1983 Cytat(Jabol @ 11.05.2003, 10:38:58 ) ... 6.08.2008, 10:37:40
mike Naprawdę sądzisz, że ~Jabol pi... 6.08.2008, 10:42:01 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 03:53 |