![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 6.04.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Zaczynam właśnie pisać obiektowo w php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Na początku napisałem taki kod:[php:1:0382d19591]<?php class moja{ var $txt; function dodaj($co){ $this->txt .= $co; } function wypisz(){ echo $this->txt; } function dlugosc(){ echo('<br>Tekst ma długość: ' . strlen($this->txt) . ' znaków.'); } } $obiekt=new moja; $obiekt->dodaj('tekst'); $obiekt->wypisz(); $obiekt->dlugosc(); ?>[/php:1:0382d19591]I teraz mam kilka pytań co do tego kodu: - czy da się go zapisać 'bardziej' obiektowo? - czy lepiej jest wszystko przerzucić na funkcje czy lepiej operować na 'zwykłych' funkcjach (np. lepiej użyć funkcji wypisz() czy echo $obiekt->txt;)? Sorry za lamerskie pytania ale oop to na razie dla mnie czarna magia... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Mam dwie uwagi, do powyzszego kodu.
1. Brak konstruktora 2. Brak przygotoania do ew. użycia szablonów. Jeśłi mogę zaproponować:[php:1:c6db3010ea]<?php class String { var $strString; function String() { $this->strString = ''; } function Add( $strStringToAdd ) { if( $this->GetLength() == 0 ) { $this->strString = $strStringToAdd; } else { $this->strString .= $strStringToAdd; } } function Get() { return $this->strString; } function GetLength() { return strlen( $this->strString ); } } $String = new String(); $String->strString = 'Foo'; echo $String->GetLength(); echo '<br />'; $String->Add( 'Bar' ); echo 'Nowy string o tresci '.$String->Get().' ma dlugosc: '.$String->GetLength().' znakow.'; echo '<br />'; ?>[/php:1:c6db3010ea]Zwróć uwagę na dwukrotne użycie metody GetLength - w Twoim kodzie takie działanie nie jest możliwe. A zgadzająć się z shimą, wszystkim "komentatorom" pragnę przypomnieć, zę naukę zaczyna się od podstaw (czasem przekombinowanych, ale przynajmneij coś wyjaśniających). W szkołach muzycznych uczą grać gamy na początek a nie koncertów symfonicznych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 18:38 |