class="refname">变量:
empty — 检查一个变量是否为空
bool empty ( mixed $var ) 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var的反义词。(var必需是一个变量,不能是一个常数,否则会报错)
?
unset — 释放给定的变量
void unset ( mixed $var [, mixed $var [, $... ]] )
(1)如果在函数中 function" style="line-height: 1.5;">unset()一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调unset() 之前一样的值。
<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; //bar ?>
?(2)如果在函数中 unset()一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
<?php
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n"; //something
foo($bar);
echo "$bar\n"; //something
?>
?(3)如果在函数中 unset()一个静态变量,则 unset()将销毁此变量及其所有的引用。
<?php function foo() { static $a; $a++; echo "$a\n"; unset($a); } foo(); //1 foo(); //2 foo(); //3 ?>
?(4)如果您想在函数中 unset()一个全局变量,可使用 $GLOBALS数组来实现:
?
<?php function foo() { unset($GLOBALS['bar']); } $bar = "something"; foo(); var_dump($bar); //BULL ?>
?
?
字符串:
strpos — 查找字符串首次出现的位置
?
<?php
$a= 'abc';
var_dump(strpos('abcd', $a)); //0
var_dump(strpos('abd', $a)); //false
?>
?
Warning
此函数可能返回布尔值FALSE,但也可能返回等同于 FALSE 的非布尔值,例如 0 或""(空串)。请阅读 布尔类型章节以获取更多信息。应使用 ===运算符 来测试此函数的返回值。
?
?
?
数组:
in_array — 检查数组中是否存在某个值
bool in_array ( mixed $needle , array $haystack [, bool $strict ] )
Note:
如果 needle 是字符串,则比较是区分大小写的。
Note:
在 PHP 版本 4.2.0 之前,needle 不允许是一个数组。
?
<?php
$a = array('1', 0, 3);
var_dump(in_array('a', $a)); //true
var_dump(in_array('a', $a,true)); //false
var_dump(in_array('3', $a)); //true
var_dump(in_array('3', $a,true)); //false
?>
?
Note:
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
?
count — 计算数组中的单元数目或对象中的属性个数
int count ( mixed $var [, int $mode ] )
?
返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元。
?
对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count()函数的返回值。
?
如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。
?
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count()将递归地对数组计数。对计算多维数组的所有单元尤其有用。mode的默认值是 0。count()识别不了无限递归。
?
?
<?php
var_dump(count($a));
var_dump(count(0));
var_dump(count(false));
var_dump(count(null));
var_dump(count(array()));
var_dump(count('123'));
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard','pea'));
var_dump(count($food, COUNT_RECURSIVE));
var_dump(count($food));
?>
int(0) int(1) int(1) int(0) int(0) int(1) int(8) int(2)
?
?
?URL:
?
urlencode — 编码 URL 字符串
返回字符串,此字符串中除了 -_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页:
注意:小心与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并使用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:? http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2。PHP 通过 arg_separator.ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为简单的解决办法是使用 & 代替 & 作为分隔符。你不需要为此修改 PHP 的 arg_separator。让它仍为 &,而仅使用 htmlentities()或 htmlspecialchars() 对你的 URL 进行编码。