downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

is_scalar> <is_real
[edit] Last updated: Fri, 24 May 2013

view this page in

is_resource

(PHP 4, PHP 5)

is_resource Finds whether a variable is a resource

Description

bool is_resource ( mixed $var )

Finds whether the given variable is a resource.

Parameters

var

The variable being evaluated.

Return Values

Returns TRUE if var is a resource, FALSE otherwise.

Examples

Example #1 is_resource() example

<?php

$db_link 
= @mysql_connect('localhost''mysql_user''mysql_pass');
if (!
is_resource($db_link)) {
    die(
'Can\'t connect : ' mysql_error());
}

?>

See Also



add a note add a note User Contributed Notes is_resource - [2 notes]
up
1
btleffler [AT] gmail [DOT] com
2 years ago
I was recently trying to loop through some objects and convert them to arrays so that I could encode them to json strings.

I was running into issues when an element of one of my objects was a SoapClient. As it turns out, json_encode() doesn't like any resources to be passed to it. My simple fix was to use is_resource() to determine whether or not the variable I was looking at was a resource.

I quickly realized that is_resource() returns false for two out of the 3 resources that are typically in a SoapClient object. If the resource type is 'Unknown' according to var_dump() and get_resource_type(), is_resource() doesn't think that the variable is a resource!

My work around for this was to use get_resource_type() instead of is_resource(), but that function throws an error if the variable you're checking isn't a resource.

So how are you supposed to know when a variable is a resource if is_resource() is unreliable, and get_resource_type() gives errors if you don't pass it a resource?

I ended up doing something like this:

<?php

function isResource ($possibleResource) { return !is_null(@get_resource_type($possibleResource)); }

?>

The @ operator suppresses the errors thrown by get_resource_type() so it returns null if $possibleResource isn't a resource.

I spent way too long trying to figure this stuff out, so I hope this comment helps someone out if they run into the same problem I did.
up
-1
tacomage at NOSPAM dot devilishly-deviant dot net
8 years ago
Note that the use of is_resource isn't necessary in the example.  mysql_connect (along with any other function that would return a resouce, I imagine) returns false on failure, so the same results could be obtained with:
<?php

$db_link
= @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!
$db_link) {
   die(
'Can\'t connect : ' . mysql_error());
}

?>

Or even:
<?php
  $db_link
= @mysql_connect('localhost', 'mysql_user', 'mysql_pass')
  or die(
'Can\'t connect : ' . mysql_error());
}
?>

You'd be more likely to use is_resource AFTER the initial conection, to make sure the variable you intend to use as a resource is, in fact, a connection resource.  You might also use is_resource as a sanity-check prior to serializing an object, since resource variables can't be serialized.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites