Главная | Руководство по MySQL | MySQL Manual | Документация к HTTP серверу Apache | Apache HTTP Server Documentation | downloads | faq

искать  Язык: Английский


is_string

(PHP 4, PHP 5)

is_stringПроверяет, является ли переменная строкой

Описание

bool is_string ( mixed $var )

Проверяет, является ли данная переменная строкой.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является строкой, FALSE в противном случае.

Примеры

Пример #1 Пример использования is_string()

<?php
if (is_string("23")) {
 echo 
"строка\n";
} else {
 echo 
"не строка\n";
}
var_dump(is_string('abc'));
var_dump(is_string("23"));
var_dump(is_string(23.5));
var_dump(is_string(true));
?>

Результат выполнения данного примера:

строка
bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целого типа
  • is_bool() - Проверяет, является ли переменная булевой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


User Contributed Notes
is_string
son9ne dot junk at gmail dot com
24-Feb-2010 06:38
It took me a second to realize what was happening. When checking is_string() on an empty string, it fails.

ie:

<?php
function fetchType($var) {
   
# Setup commonly used types (PHP.net warns against using gettype())
   
switch ($var) {
        case
is_string($var):
           
$type='string';
            break;

        case
is_array($var):
           
$type='array';
            break;

        case
is_null($var):
           
$type='NULL';
            break;

        case
is_bool($var):
           
$type='boolean';
            break;

        case
is_int($var):
           
$type='integer';
            break;

        case
is_float($var):
           
// $type='float';
           
$type='double';
            break;

        case
is_object($var):
           
$type='object';
            break;

        case
is_resource($var):
           
$type='resource';
            break;

        default:
           
$type='unknown type';
            break;
    }
    return
$type;
}
echo
fetchType('');
?>

will output: array.
yarco dot w at gmail dot com
03-Sep-2007 08: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 03: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 01: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 02: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 01: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.
 

 
credits | contact