![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pisząc klase natrafiłem chyba na błąd. Odpalcie sobie poniższy skrypt i napiszcie dlaczego php wyświetla go poprawnie? Przecież prywatna zmienna to _zmienna a nie zmienna
![]()
Ten post edytował J4r0d 6.01.2007, 07:26:16 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
To nie błąd. Zważ, że w php możesz tworzyć składowe dynamicznie (publiczne). Zatem masz po prostu dwie zmienne - $_zmienna i $zmienna : )
Pozdrawiam, a życzenia w hydeparku : D -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
To nie błąd. Zważ, że w php możesz tworzyć składowe dynamicznie (publiczne). Zatem masz po prostu dwie zmienne - $_zmienna i $zmienna : ) Czyli jak spróbuję przypisać wartość do nie istniejącej zmiennej, to zostanie on utworzona i będzie publiczna? To jest totalna głupota.. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 3 Dołączył: 29.07.2005 Skąd: Szczebrzeszyn Ostrzeżenie: (0%) ![]() ![]() |
Czyli jak spróbuję przypisać wartość do nie istniejącej zmiennej, to zostanie on utworzona i będzie publiczna? To jest totalna głupota.. to uzywaj metod __set i __get i po sprawie. a glupota to nie jest, za duzo problemow by bylo z dzialaniem skryptow z php4 pod php5 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
to uzywaj metod __set i __get i po sprawie. a glupota to nie jest, za duzo problemow by bylo z dzialaniem skryptow z php4 pod php5 To bym musiał napisać metode __set() tylko po to, żeby wyświetlać errora, że próbowano zapisać do nie istniejącej zmiennej. Co do działania skryptów pisanych pod php4 to dla mnie php4 nie istnieje. Zresztą pisanie w php4 "obiektowo" też było głupotą. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#6
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
@hwao: rozumiem, tylko jak popisze w innym języku to normalnie trafia mnie że php pozwala na takie głupoty.
Poza tym kiedyś poruszałem temat http://forum.php.pl/index.php?showtopic=59021&hl= na który niestety nikt nie odpowiedział. Skoro w php nie deklarjemy typu zmiennej to dlaczego w logach apacha po pewnym czasie mam dosyć dużo wpisów w stylu "została użyta zmienna, która nie została zadeklarowana.." :/ Ten post edytował J4r0d 1.01.2007, 14:56:59 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat tylko jak popisze w innym języku to normalnie trafia mnie że php pozwala na takie głupoty. Jakim? C++, JAva C#? Ok, ze skryptowych (ktore znam) Ruby sie czepia niezdefiniowanych zmiennych instancji. Cytat Skoro w php nie deklarjemy typu zmiennej to dlaczego w logach apacha po pewnym czasie mam dosyć dużo wpisów w stylu "została użyta zmienna, która nie została zadeklarowana.." :/ NIe typ zmiennej, ale sama zmienna. I tyczy sie to zmiennych globalnych i lokalnych, a nie zmiennych instancji (w obiektach) -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jakim? C++, JAva C#? Ok, ze skryptowych (ktore znam) Ruby sie czepia niezdefiniowanych zmiennych instancji. NIe typ zmiennej, ale sama zmienna. I tyczy sie to zmiennych globalnych i lokalnych, a nie zmiennych instancji (w obiektach) Nie chodzi mi o niezdefiniowane zmienne instancji. Ogólnie o niezdefiniowane. A swoją drogą nie sprawdzałem czy w C++/Javie będzie można zapisać do zmiennej instancji, której nie ma. To wyszło przez przypadek jak skorzystałem z podpowiadania składni eclipse - miałem podobne zmienne.. Muszę wyłączyć logowanie i będzie spokój bo apach potrafi zapchać dysk.. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat Muszę wyłączyć logowanie i będzie spokój bo apach potrafi zapchać dysk.. Jesli zatkam uszy na negatywna krytyke to wtedy bede idealny. Nie tedy droga, nie chodzi o ukrywanie widocznych (tych ktore wiesz czemu sie pojawiaja) bledow tylko o ich poprawienie. Cytat Nie chodzi mi o niezdefiniowane zmienne instancji. Ogólnie o niezdefiniowane. Ogolnie to sa to zupelnie rozne przypadki: $aa = 3; // da ci errora a $this->aa = 3; // juz nie Cytat A swoją drogą nie sprawdzałem czy w C++/Javie będzie można zapisać do zmiennej instancji, której nie ma. Ciekawe jak, przeciez to sie nawet nie skompiluje. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jesli zatkam uszy na negatywna krytyke to wtedy bede idealny. Nie tedy droga, nie chodzi o ukrywanie widocznych (tych ktore wiesz czemu sie pojawiaja) bledow tylko o ich poprawienie. Rozumiem. Tylko, że w tym projekcie (był pisany strukturalnie) mógłbym poprawić. Tylko, że: - tablice zdefiniuje jako $tablica = array(); i nie będzie wywalać błędów.. A jak z ze zmiennymi typu string czy integer lub float? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 3 Dołączył: 4.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
php sam rozronia typ danych przypisanych do zmiennej i formatuje ja odpowiedznio wiec sie tym nie musisz martwic
![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
php sam rozronia typ danych przypisanych do zmiennej i formatuje ja odpowiedznio wiec sie tym nie musisz martwic ![]() Nie rozumiesz o co mi chodzi albo ja trochę zamotałem ![]() Czyli każdą zmienną (bez względu na jej typ) zanim ją użyje muszę ją zapisać jako np:
Dokładnie w logach apacha mam takie wpisy: Cytat Undefined variable: PHP_SELF in usr/local/apache/htdocs/www/index.php on line 358 Z PHP_SELF mam mnóstwo wpisów - z każdego skryptu. Pojawiają się jeszcze wpisy na temat sesji: Cytat A session had already been started - ignoring session_start() Startujemy sesje i jak nam wiadomo, jeśli sesja jest wystartowana to jest kontynuowana a nie tworzona od nowa - więc dlaczego sypie errory do pliku? Ten post edytował J4r0d 1.01.2007, 19:33:41 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 3 Dołączył: 4.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
nie to Ty mnie nie zrozumiales
![]() ![]() ![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie to Ty mnie nie zrozumiales ![]() ![]() ![]() Ok to rozumiem. Mi chodzi o to, że w C++ czy innym języku zanim użyjesz w programie zmiennej, musisz ją zadeklarować bo program się nie skompiluje. php tego nie wymaga. Możesz w dowolnym momencie tworzyć zmienne. Ale jak coś takiego zrobisz to apache wrzuca mi do error_log apacha błędy w stylu: Cytat Undefined variable: tablica1 in usr/local/apache/htdocs/www/index.php on line 358
-------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Cytat Startujemy sesje i jak nam wiadomo, jeśli sesja jest wystartowana to jest kontynuowana a nie tworzona od nowa - więc dlaczego sypie errory do pliku? To są akurat notice'y. ![]()
Cytat $aa = 3; // da ci errora Taka definicja nie daje przecież errora. Czy ja się mylę?Sprawdzałem również definicje zmiennych poprzez (typ)$var; - również wywala Notice'a. EDIT: A co do $_zmienna i $zmienna - php zaleca dobrym nawykiem zapisywanie zmiennych prywatnych poprzedzonych podkreślnikiem . Ten post edytował cadavre 1.01.2007, 19:53:41 -------------------- Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz! |
|
|
![]()
Post
#17
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
[quoet]Taka definicja nie daje przecież errora. Czy ja się mylę?[/quote]
Ajj, namieszalem. Moj blad. Nie daje. Myslalem o czym innym co innego zapisalem. Chodzilo o to:
Nie chodzi o definicje typu zmiennej tylko o jej deklaracje przed uzyciem, czyli zamiast
tak:
PHP_SELF -- przeciez to od dawna nie istnieje -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
PHP_SELF -- przeciez to od dawna nie istnieje Nawet nie wiedziałem - działa :/ Co do pozostałych uwag to potestuję i posprawdzam. PHP_SELF -- przeciez to od dawna nie istnieje Wogóle skąd masz takie informacje? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#19
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
$_SERVER[ 'PHP_SELF' ] istnieje, PHP_SELF nie
php Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in ..... manual: Cytat $_SERVER Note: Introduced in 4.1.0. In earlier versions, use $HTTP_SERVER_VARS. a sama stala PHP_SELF to juz nie wiem kiedy zostala usunieta. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
$_SERVER[ 'PHP_SELF' ] istnieje, PHP_SELF nie No ja cały czas korzystam z $_SERVER[ 'PHP_SELF' ] -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 23:25 |