tags:

views:

177

answers:

2

How would I add isset() and keep the empty() on my code below?

$pagesize = (!empty($_GET['pagesize'])) ? $_GET['pagesize'] : 20;

UPDATE:

I am just wanting to make sure php doesn't produce any notices or warnings

+1  A: 

Is this what you mean?

$pagesize = (isset($_GET['pagesize']) && !empty($_GET['pagesize'])) ? 
                $_GET['pagesize'] :
                20;

http://us.php.net/manual/en/language.operators.logical.php

EDIT:
To be complete, empty already checks if something is set, so you don't need to use isset() as well.
I would also caution against using this code if it is going directly into a query or something similar. Consider using intval, is_numeric and similar functions.

Nick Presta
that's quite redundant since `empty` checks if a value is set
nickf
I know, but I'm answering the question with the given information. Such a thing is dangerous anyways since it's possible to be set and not empty but still contain malicious code or unexpected data. I'll update my answer to include this.
Nick Presta
+2  A: 

I'm not sure exactly what you're after here. isset will check if a value has been set and return true if it has. empty will check if a value hasn't been set OR if it equates to false (eg: 0, "", null) and return true if it does.

I can't see why you'd need to combine the two. To rewrite your example without empty, you'd do this:

$pagesize = isset($_GET['pagesize']) && $_GET['pagesize']
          ? $_GET['pagesize']
          : 20;
nickf