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

search for in the

is_unicode> <is_scalar
Last updated: Fri, 14 Nov 2008

view this page in

is_string

(PHP 4, PHP 5)

is_stringFind whether the type of a variable is string

Description

bool is_string ( mixed $var )

Finds whether the type given variable is string.

Parameters

var

The variable being evaluated.

Return Values

Returns TRUE if var is of type string, FALSE otherwise.

Examples

Example #1 is_string() example

<?php
if (is_string("23")) {
 echo 
"is string\n";
} else {
 echo 
"is not an string\n";
}
var_dump(is_string('abc'));
var_dump(is_string("23"));
var_dump(is_string(23.5));
var_dump(is_string(true));
?>

The above example will output:

is string
bool(true)
bool(true)
bool(false)
bool(false)



is_unicode> <is_scalar
Last updated: Fri, 14 Nov 2008
 
add a note add a note User Contributed Notes
is_string
yarco dot w at gmail dot com
03-Sep-2007 10:19
re: php dot net at oui dot jp

<?php
$a
= array('0' => 'zero'); // '0'

// is different from

$b = '0'; // '0'
?>

Because when you use array, it will automatically change the key to integer if it could.
So, it output:

>php -r "print var_dump(array_keys(array('0' => '
zero', '1' => 'one')));"
array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}

They are int type, not string.
Dainix Zsigmond
01-Aug-2007 05:44
To php dot net at oui dot jp:
 
It's going to return a string if the variable's value is encased around quotes or apostrophes, period.  Be it a '0' or a '1', it's a string all around.  The index in an array is a little bit of a different story.

Sample coding is below:

<?php
$ar
= array('this is a string.', '38', '038', 0382, 3892.283);
$ar2 = array('S1' => 'string.', 'S2' => 'a string.', '3' => 3827, '3.82.' => '2222', '-1' => 'foo');
foreach(
$ar as $num => $string)
{
    if (
is_string($string)) { echo 'Yes. <br />'; } else { echo 'No. <br />'; }
}
print_r($ar);
foreach(
$ar2 as $num => $string)
{
    if (
is_string($num)) { echo 'Yes. <br />'; } else { echo 'No. <br />'; }
}
print_r($ar2);
?>
The first foreach contains a simple if/then statement that checks if the array value is a string or not, which works correctly (Yes, Yes, Yes, No, No).  The second checks if the index identifier is a string.  It returns Yes, Yes, No, and Yes.
 
Printing the array: Array ( [S1] => string. [S2] => a string. [3] => 3827 [3.82] => 2222 [-1] => foo)
The index identifier will be marked as a string if the identifier is not an integer above zero.
php dot net at oui dot jp
07-Jun-2007 03:13
<?php
       
// Interesting...

       
$arr  = array ('abc','def','ghi');
       
$aarr = array ('0' => 'abc','1' => 'def','2' => 'ghi');

        foreach (
$arr as $u => $v)
          print
is_string($u) ? "Yes\n":"no\n"; // no: ok, index is numeric (0, 1, 2)

       
foreach ($aarr as $u => $v)
          print
is_string($u) ? "Yes\n":"no\n"; // still no! was expecting Yes!

       
if (is_string ('0')) print "'0' is a string\n"; // ...as '0' is a string!
?>
djhook at users dot sourceforge dot net
12-Sep-2003 04:20
function is_upper($input) {
    return ($input == strtoupper($input));
}

function is_lower($input) {
    return ($input == strtolower($input));
}

this functions check if a string is all upper/lower case.

input:   string
output: true/false
slicky at newshelix dot com
20-Mar-2001 02:06
Be aware that this function could result into unwanted results if you check single chars in an array.
For instance:
You have a simple string and want to repeat this string evertime it ends.

<?php
for ($i=0; $i < strlen($string);$i++){
    if(!
is_string($key[$x]))
       
$x = 0;
    echo
$key[$x];
   
$x++;
}
?>

This will print you out the key, but won't iterate it since $x won't be reset. is_string function will give out true at element in that string, even if it doesn't exist. for instance is_string $key[1000] while your string is just 10chars long.
However this doesn't matter just use $key[$x] == '' instead.
Of course you won't use this to iterate a string, but you might come across something where this get useful, for instance for a en/decrypt engine.

is_unicode> <is_scalar
Last updated: Fri, 14 Nov 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites