我打算先把PHP手册好好过一遍。记录一些以前不知道和不清楚的知识。语言参考>类型【新知识】使用settype(mixed$var,string$type)强制转换类型。使用is_type函数来确定变量的类型。例如:if(is_int($an_int)){$an_int+=4;}if(is_string($a_bool)){echo"String:$a_bool";}判断变量is_array(mixed$var)is_bool(mixed$var)is_float(mixed$var)is_integer(mixed$var)is_null(mixed$var)is_numeric(mixed$var)//检测变量是数字还是数字字符串is_object(mixed$var)is_resource(mixed$var)is_scalar(mixed$var)//检查变量是否为整数、浮点数、字符串或booleanis_string(mixed$var)判断函数和方法function_exists(string$function_name)method_exists(mixed$object,string$method_name)//判断classmethodBoolean布尔型[遇到坑](string)'0.00'被认为是True不为空$str='0.00';$ret=!empty($str)?$str:'5.00';echo$ret;//output:0.00[遇到一个坑]当一个字符串和一个数字比较时,先转为数字再比较//全部转为数字时,会是0var_dump(0=='all');//TRUE,takecareIntegerInteger【新知识】整数的最大值可以用常量PHP_INT_MAX表示【新知识】PHP没有像C++/JAVA那样的整数除法运算,类似于1/2,PHP返回float0.5[旧评论]转换为整数可以用(int)或(integer)进行转换。或者通过函数intval()进行转换。Float浮点型【新认知】浮点数比较方法StringString【新知识】利用函数ord()和chr()实现ASCII码和字符之间的转换(PS:这个和Python是一样的)【新知识】PHP中没有单独的“byte”类型,已经被string代替。数组【新认知】unset()函数允许删除数组中的某个键,但不会对数组的键重新建立索引。可以使用array_values()函数重新索引。【遇到陷阱】避免写数组$foo[bar],使用$foo['bar'][新理解]对象类型转数组,结果为数组,其单位为对象的属性.键名将是成员变量名,但有一些例外:整数属性不可访问;私有变量以类名为前缀;受保护的变量以“*”为前缀。这些前缀前后都有NULL字符。【新认知】循环中改变单位,可以用引用pass来做//PHP5foreach($colors作为&$color){$color=strtoupper($color);}unset($color);/*确保下面的写法将[新认知]类型转换为NULL类型,(unset)$val[新认知]字符串字面量和变量转换为二进制字符串(PS:和想象的不一样)Variable变量范围【老点评】使用global,$GLOBALS来实现全局变量或者超全局变量【新认知】静态变量只能简单赋值,不是表达式。静态变量在第一次赋值后不会重新定义,可以用来统计递归函数。来自PHP外部的变量【新认知】变量名中的点和空格转换为下划线,例如
