Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This example:

  $description = strip_tags($_POST['description']);
  echo $description;

  ...

  echo strip_tags($_POST['description']);
Sacrifices readability for performance. Sometimes that's a worthwhile compromise, but often times not. And if you plan on referencing $description more than once (which, most code would), then it wouldn't make much sense to run strip_tags each time.


I doubt it even sacrifices performance. The temporary results of strip_tags() still has to be allocated in order to be echo'd out -- so you're using the same amount of memory. $description will be de-allocated as soon as it goes out of scope.


Memory cleanup isn't free (the instance of $description in scope), and unless you return by-reference, you're making a double copy.


Both versions of the code do exactly the same: 1. Take description from memory 2. Allocate string and put the stripped version there 3. Output the string (here you might save if you don't use output buffering since no copying to the buffer happens but just output) 4. Release the memory allocated in 2.


Whoops, you're right--I was thinking it was getting returned, rather than output.


Agreed. Should be:

$stripped_description = strip_tags($_POST['description']); echo $stripped_description;




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: