小编And*_*ers的帖子

PHP类型转换 - 好还是坏?

经过C和Java的一些工作后,我对PHP中的狂野西部法则越来越恼火.我真正觉得PHP缺乏的是严格的数据类型.string('0')==(int)0 ==(boolean)false的事实就是一个例子.

您不能依赖函数返回的数据类型.您既不能强制函数的参数属于特定类型,这可能会导致非严格比较,从而导致意外情况.一切都可以照顾,但它仍然打开了意外的错误.

对方法进行类型转换的参数是好的还是坏的做法?对回归进行强制转换是否有益?

IE

public function doo($foo, $bar) {
   $foo = (int)$foo;
   $bar = (float)$bar;
   $result = $bar + $foo;
   return (array)$result;
}
Run Code Online (Sandbox Code Playgroud)

这个例子非常愚蠢,我没有测试过,但我认为每个人都有这个想法.有没有理由让PHP-god按照自己的意愿转换数据类型,除了让那些不了解数据类型的人使用PHP?

php types

12
推荐指数
1
解决办法
3923
查看次数

为什么PHP strtolower性能如此变化?

我在网站上做了一些分析,发现strtolower调用花了很长时间.

背景是


function __autoload($class_name) {  
  require_once('app/model/' . strtolower($class_name) . '.php');  
}
Run Code Online (Sandbox Code Playgroud)

结果是
_0.0092 - > ___ autoload()C:\ xxx\config.php:0_
0.0093 - > strtolower()C:\ xxx\config.php:77
0.0101 - > require-once(C:\ xxx. php)C:\ xxx\config.php:77
我在跟踪文件中的几个地方看到过这个.

然后,我在以下上下文中尝试了该函数


for($i=0;$i<100;$i++) {  
  strtolower('SomeStRIng' . $i)  
}
Run Code Online (Sandbox Code Playgroud)

结果是
0.0026 - > strtolower()C:\ xxx\index.php:53
0.0027 - > strtolower()C:\ xxx\index.php:53
0.0027 - > strtolower()C:\ xxx\index.php :53
0.0027 - > strtolower()C:\ xxx\index.php:53

两者之间存在显着差异.当然,这并不是什么大事,但我仍然感到困惑.

php performance

4
推荐指数
1
解决办法
1078
查看次数

标签 统计

php ×2

performance ×1

types ×1