php函数(检查变量、函数、键是否存在) 简单

empty

(PHP 4, PHP 5)

empty — 检查一个变量是否为空

描述

bool empty ( mixed $var )

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""0"0"NULLFALSEarray()var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。

 

Example#1 empty() 与 isset() 的一个简单比较。

<?php
$var 
0
;

// 结果为 true,因为 $var 为空
if (empty($var
)) {  
     echo 
'$var is either 0 or not set at all'
;
}

// 结果为 false,因为 $var 已设置
if (!isset($var
)) { 
     echo 
'$var is not set at all'
;
}
?>

Note由于这是一个语言结构而非函数,因此它无法被变量函数调用。

Noteempty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))

参见 isset()unset()array_key_exists()count() 和 strlen()

isset

(PHP 4, PHP 5)

isset — 检测变量是否设置

描述

bool isset ( mixed $var [, mixed $var [, $... ]] )

如果 var 存在则返回 TRUE,否则返回 FALSE

如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。

Note警告 isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

 

<?php

$var 
''
;

// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var
)) {
     print 
"This var is set set so I will print."
;
}

// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。

$a "test"
;
$b "anothertest"
;

var_dump( isset($a) );      
// TRUE
var_dump( isset ($a$b) ); 
// TRUE

unset ($a
);

var_dump( isset ($a) );     
// FALSE
var_dump( isset ($a$b) ); 
// FALSE

$foo NULL
;
var_dump( isset ($foo) );   
// FALSE

?>

这对于数组中的元素也同样有效:

<?php

$a 
= array ('test' => 1'hello' => NULL
);

var_dump( isset ($a['test']) );            
// TRUE
var_dump( isset ($a['foo']) );             
// FALSE
var_dump( isset ($a['hello']) );           
// FALSE

// 键 'hello' 的值等于 NULL,所以被认为是未置值的。
// 如果想检测 NULL 键值,可以试试下边的方法。 
var_dumparray_key_exists('hello'$a) ); 
// TRUE

?>

Note由于这是一个语言结构而非函数,因此它无法被变量函数调用。

参见 empty()unset()defined()array_key_exists() 和错误控制 @ 运算符。

unset

(PHP 4, PHP 5)

unset — 释放给定的变量

描述

void unset ( mixed $var [, mixed $var [, $... ]] )

unset() 销毁指定的变量。注意在 PHP 3 中,unset() 将返回 TRUE(实际上是整型值 1),而在 PHP 4 中,unset() 不再是一个真正的函数:它现在是一个语句。这样就没有了返回值,试图获取 unset() 的返回值将导致解析错误。

 

Example#1 unset() 示例

<?php
// 销毁单个变量
unset ($foo
);

// 销毁单个数组元素
unset ($bar['quux'
]);

// 销毁一个以上的变量
unset ($foo1$foo2$foo3
);
?>

unset() 在函数中的行为会依赖于想要销毁的变量的类型而有所不同。

如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?php
function destroy_foo
() {
     global 
$foo
;
     unset(
$foo
);
}

$foo 'bar'
;
destroy_foo
();
echo 
$foo
;
?>
上边的例子将输出:
bar

如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。

<?php
function foo(&$bar
) {
     unset(
$bar
);
    
$bar "blah"
;
}

$bar 'something'
;
echo 
"$bar\n"
;

foo($bar
);
echo 
"$bar\n"
;
?>
上边的例子将输出:
something
something

如果在函数中 unset() 一个静态变量,则 unset() 将销毁此变量及其所有的引用。

<?php
function foo
() {
     static 
$a
;
    
$a
++;
     echo 
"$a\n"
;
     unset(
$a
);
}

foo
();
foo
();
foo
();
?>
上边的例子将输出:
1
2
3

如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现:

<?php
function foo
() {
     unset(
$GLOBALS['bar'
]);
}

$bar "something"
;
foo
();
?>

Note由于这是一个语言结构而非函数,因此它无法被变量函数调用。

参见 isset() 和 empty()

defined

(PHP 4, PHP 5)

defined — Checks whether a given named constant exists

说明

bool defined ( string $name )

Checks whether the given constant exists and is defined.

Note: If you want to see if a variable exists, use isset() as defined() only applies to constants. If you want to see if a function exists, use function_exists().

参数

 

name

The constant name.

返回值

Returns TRUE if the named constant given by name has been defined, FALSE otherwise.

范例

 

Example#1 Checking Constants

<?php
/* Note the use of quotes, this is important.   This example is checking
* if the string 'CONSTANT' is the name of a constant named CONSTANT */
if (defined('CONSTANT'
)) {
     echo 
CONSTANT
;
}
?>

array_key_exists

(PHP 4 >= 4.0.7, PHP 5)

array_key_exists — 检查给定的键名或索引是否存在于数组中

说明

bool array_key_exists ( mixed $key , array $search )

array_key_exists() 在给定的 key 存在于数组中时返回 TRUEkey 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。

 

Example#1 array_key_exists() 例子

<?php
$search_array 
= array('first' => 1'second' => 4
);
if (
array_key_exists('first'$search_array
)) {
     echo 
"The 'first' element is in the array"
;
}
?>

Note在 PHP 4.0.6 中本函数名为 key_exists()

Example#2 array_key_exists() 与 isset() 对比

isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。

<?php
$search_array 
= array('first' => null'second' => 4
);

// returns false
isset($search_array['first'
]);

// returns true
array_key_exists('first'$search_array
);
?>

参见 isset()array_keys() 和 in_array()

function_exists

(PHP 4, PHP 5)

function_exists — Return TRUE if the given function has been defined

说明

bool function_exists ( string $function_name )

Checks the list of defined functions, both built-in (internal) and user-defined, for function_name .

参数

 

function_name

The function name, as a string.

返回值

Returns TRUE if function_name exists and is a function, FALSE otherwise.

Note: This function will return FALSE for constructs, such as include_once() and echo().

范例

 

Example#1 function_exists() example

<?php
if (function_exists('imap_open'
)) {
     echo 
"IMAP functions are available.<br />\n"
;
} else {
     echo 
"IMAP functions are not available.<br />\n"
;
}
?>

注释

Note: A function name may exist even if the function itself is unusable due to configuration or compiling options (with the image functions being an example).

method_exists

(PHP 4, PHP 5)

method_exists — 检查类的方法是否存在

说明

bool method_exists ( object $object , string $method_name )

如果 method_name 所指的方法在 object 所指的对象类中已定义,则返回 TRUE,否则返回 FALSE

 

Example#1 method_exists() 例子

<?php
$directory 
= new Directory('.'
);
var_dump(method_exists($directory,'read'
));
?>

上例将输出:

bool(true)

参见 function_exists() 和 is_callable()

原文地址:https://www.cnblogs.com/chyong168/p/2256035.html