W tym krótkim wpisie chciałbym zaprezentować Wam parę ciekawostek związanych z językiem PHP. Pomimo faktu, iż programuje w nim już dość długi okres czasu, to nadal potrafi mnie czymś zaskoczyć. Zatem zapraszam do lektury.
ciekawostka numer 1
Na pierwszy rzut oka poniższy skrypt nie jest poprawny i wydawać się może, że jedynym wynikiem jego wykonania powinien być komunikat błędu – a tu niespodzianka. ODRADZAM KORZYSTANIE!. Popatrzmy:
echo jestem;
Na wyjściu otrzymujemy:
jestem
ciekawostka numer 2
Aby dostać się do konkretnej wartości tablicy asocjacyjnej, należy podawać klucze w apostrofach. Oczywiste, prawda? Można pójść na skróty (co nie jest zalecane).ODRADZAM KORZYSTANIE!. Spójrzmy:
$tab = array('a'=>345,'b'=>34);
echo $tab[a];
Wypisze:
345
UWAGA!
Obie przedstawione perełki generują błąd E_NOTICE, który przy domyślnych ustawieniach w pliku php.ini nie jest wyświetlany.
ciekawostka numer 3
Instrukcje include i include_once mogą zwracać wartości z plików przez nie załączanych. Skrypt first.php:
echo include 'second.php';
Natomiast second.php:
return 4;
Wynik uruchomienie first.php:
4
ciekawostka numer 4
Istnieje możliwość dynamicznego dodawania właściwości obiektom klas. Zobaczmy:
class MyClass {
}
$obj = new MyClass();
$obj->a = 4;
$obj->b = 5;
unset($obj->a);
var_dump($obj);
Po wykonaniu:
object(MyClass)#1 (1) { ["b"]=> int(5) }
I to tyle. Mam nadzieje, że chociaż jednej z „perełek/ciekawostek” nie znaliście.
13 Odpowiedzi : “„perełki” php”


Pierwsze dwie perelki to niechlujstwo, a stosowanie podobnych praktyk jest niebezpieczne.
Jesli po jakims czasie bedziesz chcial dodac stala lub zmienna a czy jestem, to bedziesz mial caly kod do przepisania.
W pierwszym przypadku jestem traktowane jest jako stala (constant).
Tak tak, należy zdecydowanie tego posta traktować z przymrużeniem oka – jako czystą ciekawostką.
Witam, znalazłem Twojego bloga w Google i też chciałbym skrobnąć parę słów komentarza. Co do pierwszych dwóch przykładów, to zgadzam się z przedmówcami, że jest to błąd w sztuce i tak się robić nie powinno. Nie jest to żaden hack IMO, po prostu działanie parsera PHP, który próbuje jak może dobrze zinterpretować kod. ;] Co do trzeciej perełki – ta jest akurat dosyć ciekawa, chyba zrobię sobie jakieś demko, żeby zobaczyć jak to dokładnie działa. A ostatni „hack” z listy nie jest akurat niczym specjalnym – w tym wypadku po prostu jet wywoływana magiczna metoda __set() i tyle. Chyba, że się nie wie nic o magicznych metodach albo nigdy nie programowało się w JavaScripcie, wtedy faktycznie wygląda to zastanawiająco.
Pozdrawiam!
BTW. Ustaw kolor tekstu na blogu na trochę ciemniejszy, bo oczy bolą od tego jasnego szarego. ;]
Drogi autorze, takie hacki są dla bardzo początkujących (nie-)programistów. IMHO, jeśli ktoś widzi to poraz pierwszy powinien się jeszcze dużo nauczyc
Więc jak już pisałem w komentarzu pierwsze dwie ciekawostki – co teraz zaznaczyłem jeszcze wyraźniej w samym poście nie należy stosować.
W pierwszym przypadku parser PHP szuka stałej o nazwie ‘jestem’, a w drugim stałej o nazwie ‘a’. Jeśli takowej nie znajduje wypluwa NOTICE.
Instrukcję include wykorzystuję akurat bardzo często. Jeśli np. w pliku foo.php umieścisz kod <?php return array(‘a’,'b’); to później tę tablicę możesz przypisać do zmiennej w sposób $arr = include foo.php;
Czwarty przypadek to bynajmniej nie wywołanie funkcji magicznej __set bo w PHP4 też to działa, a jak wiadomo magia narodziła się wraz z 5 wersją PHP. W sumie skoro w PHP nie trzeba deklarować zmiennych to niby dlaczego miałby być obowiązek deklarowania właściwości w klasie
.
Dlaczego autor bloga znając się na PHP korzysta z wordpress
Pewnie z tego samego powodu z którego programiści piszący w językach niższego poziomu używają gotowych systemów operacyjnych, nie pisząc własnych. Szybciej postawić WordPressa niż pisać własny system. Stabilniej, skuteczniej, bezpieczniej itd…
RalFie, bardzo fajny blog
Pozdrawiam i życzę chęci do dalszego pisania.
Bardzo miło mi jest to słyszeć
Oczywiście niebawem kolejne wpisy
Pozdrawiam.
Zgodnie z zasadą „nie wymyślaj na nowo koła”, skorzystałem właśnie z WordPress’a. Prowadzenie bloga to moje hobby, a nie posiadam niestety wystarczającej ilości czasu, by zaimplementować tutaj autorskie rozwiązanie. Jestem też w pełni świadomy zalet i wad zastosowanego skryptu. Jeśli ktoś uważa, że jest to przejaw braku profesjonalizmu z mojej strony, pozostaje mi się ów opinię przyjąć z pokorą do wiadomości.
Gdyby nikt nie próbowałby wymyślać koła od nowa, mielibyśby kamienne koła w samolotach odrzutowych…. o ile by się oderwały od ziemi.
Już tłumaczę. Miałem na myśli samą ideę koła, a nie sposobu jego wykonania. Podejmując określoną decyzję implementacji, rozważa się wszystkie stawiane wobec niego wymagania: bezpieczeństwo aplikacji, jej wydajność, skalowalność i elastyczność rozwiązania, czas wdrożenia i np. usability klienta końcowego.
Przyznaje – w swoim życiu koło wynajdowałem nie raz. Jest to proces niezbędny (moim skromnym zdaniem), aby dogłębnie i szczegółowo poznać zasady programowania w konkretnym języku.
Obawiam się, iż skrupulatne omówienie poruszonej tematyki, nadaje się na spotkanie przy piwku