驼峰式的字符串与下划线式的字符串互转 2018-3-28

<?php $ts = microtime(true); $r = 'open_door'; $s = ''; foreach(explode('_', $r) as $v){$s .= ucfirst($v);} $t1 = microtime(true); echo $s; echo PHP_EOL,$t1 -$ts,PHP_EOL; $s = ucwords(str_replace("_"," ",$r)); $t2 = microtime(true); echo $s; echo PHP_EOL,$t2 -$t1,PHP_EOL; $s = preg_replace_callback('/(^|_)(\w)/', function ($mat){return strtoupper($mat[2]);}, $r); $t3 = microtim...
浏览:1353 分类:练习 详请

缺失的数字是多少? 2018-3-27

小红跟小明打赌玩一个游戏,先让小明从1~100的数字中挑选99个数字,然后一一随即报出,小红她就能找出那个缺失的数字。有什么好办法来实现小红这个把戏?整个过程中,她不能做任何笔记,只能用自己的脑子去记忆和思考。 分析: 1+2+3+...+100 = (1+100)*50=5050 有以下算法可以简化这个过程,小红每次把小明报的数加起来,然后只取最后两位数,例如,小明报数:35,88,21,65 那么,小红心里就这样纪录: 35 //第一次记住35即可 35+88=123 //所以心里记住 23 即可 23+21=44 //依然是2位数,记住44 44+65=109 //记住9即可 ….. ...
浏览:1553 分类:练习 详请

算算数字“1”显示多少次 2018-3-26

<?php //轿车的里程表可以显示 000000 到 999999 的任意六位数组合。里程表跑完整个显示区域,此间有多少个包含一个数字“1” 的里程数? 整个过程,数字“1” 显示多少次? (如,101111 显示了5次数字“1” ,下一个里程数101112又显示了4次) for($i=0;$i<=9;$i++){ echo $i, ' exists ', showTimes(3, $i); echo PHP_EOL; } function showTimes($num, $char){ $times = 0; $i = 0; do{ $ipad = str_pad($i,$num,'0', STR_PAD_LEFT); // echo $ipad,' ',substr_count($ipad, $char),PHP_EOL...
浏览:1462 分类:练习 详请

PHP陷阱之count 2018-3-26

$a = count ("sijiaomao") + count(null) + count(false); echo $a;//2 int count ( mixed var [, int mode] ) 返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元。 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。
浏览:1689 分类:练习 详请

php中不同类型的变量做==比较时,等号右侧的值会转换为左侧值的类型 2018-3-26

$items = array(0=>1,"ok"=>2, 3, 4); foreach($items as $key=>$val) { print($key == "ok" ? 5 : $val); } // 输出结果为 5534,why? 原来php中不同类型的变量做==比较时,会先将等号右侧的值转换为左侧值的类型,“ok”转换为数字也是0,因此结果为 5534。为避免这种情况应尽量使用 === 判断 $a = 3; $b = 5; if ($a = 3 || $b = 7) { $a++; $b++; } var_dump($a); //true var_dump($b); //6
浏览:1252 分类:练习 详请