1<?php 2 3echo 1+true; //true -> 1 4echo '<hr />'; 5echo 1+false; //false -> 0 6echo '<hr />'; 7echo 1.1+false; 8echo '<hr />'; 9echo 1.1+true; 10echo '<hr />'; 11echo 1+null; //null -> 0 12echo '<hr />'; 13 14echo 1 + 'a'; //不是以合法数字开始直接转换成0 15echo '<hr />'; 16echo 1 + 'true'; //这里的true 是字符串这里这里 转转中成转中成成 0 17echo '<hr />'; 18echo 1 + '43king'; //这里会自动截取到字符为止 19 20echo '<hr />'; 21echo 1+'3qu2e1nn4'; //只会截取到第一个数字 22 23echo '<hr />'; 24echo 1+'8.8abv'; 25 26echo '<hr />'; 27echo 1+'3e2abc'; 28 29 30echo '<hr />'; 31echo '1.234561' + '2.222222'; 32echo '<hr />' ; 33echo 1 + '2.333333'; 34 35echo "<hr />"; 36echo 1.23 + 5.6666666; 37 38 39echo "<hr />"; 40echo true; // true -> 1 41 42echo "<hr />"; 43echo false; // 直接输出false 转成 空字符 44echo 'a',false,'b'; 45 46echo "<hr />"; 47echo null; // 直接输出NULL 转成 空字符 48echo "A",NULL,"B"; 49 50echo "<hr />"; 51$var=1; 52$var=-123; 53$var=0;//false 54$var=1.2; 55$var=0.0;//false 56$var='';//false 57$var="";//false 58$var=" "; 59$var="0";//false 60$var='0.0'; 61$var='false'; 62$var=null;//false 63$var=array();//false 64$var=array(1,2,3,0,'',null); 65$var=fopen('test_6.php','r'); 66$var=new stdClass(); 67if($var){ 68echo 'true'; 69}else{ 70echo 'false'; 71} 72 73 74echo "<hr />"; 75 76$a = 0.1; 77$b = 0.7; 78var_dump(($a + $b) == 0.8); //false 79 80echo "<hr />"; 81 82//解决方法: 83$a = 0.1; 84$b = 0.7; 85var_dump(bcadd($a,$b,2) == 0.8); 86 87echo "<hr />"; 88$f = 0.58; 89var_dump(intval($f * 100)); 90 91echo "<hr />"; 92//解决方法: 93$f = 0.58; 94var_dump(bcmul($f,100)); 95 96echo 1.35 + bcmul($f,100);
PHP 隐式转换(自动装换) 和 bc 精度函数
Stella981
2021-10-11
1177 0 0
点赞
收藏
评论区
加载中...