本节内容:
php布尔类型
布尔类型是PHP中 最简单的类型。它的值可以为 TRUE 或 FALSE。
例如:
$foo1=true;
echo "为假时输出值为:".$foo; //没有输出值
echo "<br />为真时输出值为:".$foo1; //输出1
一些要注意的细节:
当转换为 boolean 时,以下值被认为是 FALSE :
1、the 布尔值 FALSE 自身
2、the 整型值 0 (零)
3、the 浮点型值 0.0 (零) 空 字符串, 以及 字符串 "0"
4、不包括任何元素的数组
5、不包括任何成员变量的对象(仅PHP 4.0 适用)
6、特殊类型 NULL (包括尚未设定的变量)
7、从没有任何标记(tags)的XML文档生成的SimpleXML 对象
例子:
//$a=0;
//$a=0.0;
$a="0";
var_dump((bool) 0);
echo "<br />";
var_dump((bool) array());
if($a==false){
echo "空0默认转换为false,成功!";
}else{
echo "不能转换为false";
}
输出结果:
bool(false) 空0默认转换为false,成功!
本节主要内容:
php引号前的反斜杠问题
PHP实现的读写html文档的小程序,提交内容保存时会自动在双引号前面增加一个反斜杠“\”,而且每保存一次增加一个反斜杠。
原因:
PHP程序为了防止注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠“\”。
但是,为了读写html文档,里面自然有很多引号和双引号,此时需要去掉添加的反斜杠。
默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。
这时则可以用stripslashes()() 函数删除自动添加的反斜杠。
用法:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下这个字符串:stripslashes($str),输出的结果就是去掉反斜杠的。
于是,就把读取的字符串内容用stripslashes()函数处理一下,即$str=stripslashes($str),再保存,上传网站之后正常了。
此时,出现了另外一个问题:
因为本地PHP 指令 magic_quotes_gpc是off的,如果用这个函数的话,就会把本来正常的反斜杠也去掉了。
解决办法:
使用函数 get_magic_quotes_gpc() 进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。
代码:
$str=$_POST["str"];//读取str的内容赋值给$str变量
if(get_magic_quotes_gpc())//如果get_magic_quotes_gpc()是打开的
{
$str=stripslashes($str);//将字符串进行处理
}
修改之后,php程序在本地与网站上测试均正常了。
相关阅读 :
php引号前添加反斜杠(PHP去除反斜杠)的方法
本节内容:
php boolean(布尔)类型的例子。
说明:
当转换为 boolean 时,以下值被认为是 FALSE:
the 布尔值 FALSE 自身
the 整型值 0 (零)
the 浮点型值 0.0 (零)
空 字符串, 以及 字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅PHP 4.0 适用)
特殊类型 NULL (包括尚未设定的变量)
从没有任何标记(tags)的XML文档生成的SimpleXML 对象
所有其它值都被认为是 TRUE(包括任何资源)。
Warning
-1 和其它非零值(不论正负)一样,被认为是 TRUE!
例子:
/**
* 检测php中的boolean布尔类型
* edit: www.
*/
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
说明:
布尔转字符串时,true=>1,false=>"";