Critica e utila. Mie imi plac mai mult persoanele care ma critica decat cele care ma lauda.
1. Ce-a mai stupida chestie pe care am vazut-o si care probabil e preluata dintr-un alt limbaj de programare este concatenarea cu un string gol (probabil in ideea de a face cast string)
Cod: Selectaţi tot
<?php
$var1 = $var2.'';
// este aproape acelasi lucru ca
$var1 = $var2;
// singura utilitate a unui cast ar fi utilizarea operatorului de identitate
// dar PHP stie sa faca singur cast in cazul unei anumite operatii
$var1 = '2';
$var3 = $var1+1; // asta este 3
// pentru ca se face cast functie de +.
// Daca in loc de +1 era .'1' atunci rezultatul era 21 pentru ca devenea string
?>
2. Diferenta dintre ghilimele simple si ghilimele duble
Cod: Selectaţi tot
<?php
$ceva = 20;
// 1
$altceva = "alt$ceva"; // $altceva primeste valoarea alt20
// 2
$altceva = "alt$cevaaici"; // aici primeste valoarea alt
// + exista [uneori nu se afiseaza] un Notice cum ca $cevaaici nu exista
// 3
$altceva = "alt{$ceva}aici"; // aici primeste valoarea alt20aici
// 4
eval("echo $ceva+20;");
// este echivalent cu eval("echo 20+20;");
// pentru ca $ceva este luat drept 20 inainte ca eval sa se execute
// motiv pentru care:
eval("$var = $ceva");
// nu va face NIMIC ci va da un notice cum ca $var nu exista
// apoi un Parse error, pentru ca tocmai am scris
// = $ceva; // care este un cod incorect
// 5
$textculinienoua = 'string simplu'."\n".'iar asta e noua linie'.
'dar dupa \n de aici nu se intampla nimic'.
"decat daca \n este in duble, ca aici - de la este, se porneste o linie noua".'iar de la'."asta \t se porneste un tab";
// motiv pentru care nu este bine sa folosim continuu " daca nu avem nevoie,
// pentru ca pot aparea erori pe care le sesizam greu [codul fiind si mai putin lizibil]
$parola = 'asd$asd%as'; // este OK
$parola = "asd$asd%as"; // nu este OK
// intelegeti voi de ce
?>
3. Incrementari inutile
Cod: Selectaţi tot
<?php
// am vazut la cineva ceva de genul asta:
$var[] .= 20;
// nu stiu ce a gandit omul, dar e ca si cum ai incerca sa adaugi 20 la o
// variabila (un array care are key = lastKey + 1) care tocmai a fost "facuta"
// si care este logic ca este goala.
// Din moment ce faci push, nu te intereseaza acel key, deci
// nici macar nu stii cum se numeste in totalitate acea variabila... si vrei sa-i adaugi ceva
?>
4. conditionari stupide
Cod: Selectaţi tot
<?php
// am vazut si o chestie de genul asta
if($var==0) { } else { /* ceva */ }
// si nici aici nu am inteles care-i faza...
// nu este incorect... repet: este corect din punct de vedere sintactic
// dar de ce sa lungesti codul inutil si, de ce sa nu scrii
if($var!=0) { /* ceva */ }
// PHP-ul stie sa conditioneze si chestii de genul
if( ($var1!=0 || $var2==0) && ($var1%3 xor $var2==9) ) { /* ceva */ }
// deci nu e musai sa se 'loveasca' de niste acolade goale ca sa inteleaga care-i negatia
?>
5. <form action="<?=$_SERVER['REQUEST_URI'];?>" method="post" ...
sau <form action="<?=__FILE__?>" method="post" ...
De ce frate?! Cand
<form action="" method="post" ... este exact acelasi lucru
6. Folosirea lui <?=$var?> este OK doar daca server-ul are short-open-tags enabled. Altfel, se umple browser-ul de cod PHP
7.
Cod: Selectaţi tot
<?php
session_start();
if($ceva){ /* do something */ } ?>
<?php include('include/header.php'); ?>
<?php include('include/box_dreapta.php');
?>
Este acelasi lucru cu
Cod: Selectaţi tot
<?php
session_start();
if($ceva){ /* do something */ }
include('include/header.php');
include('include/box_dreapta.php');
?>
Cu exceptia faptului ca nu-i zici PHP-ului
"acum fac output... stai, nu fac... ba da fac"
Sigur mai sunt maruntisuri d-astea. Adaugati si voi ce ati mai intalnit pe la altii.