多数大学生出来选择的工作和专业无关
首页 > 专业知识

探究PHP浮点类型取整的使用规则

时间:2018-03-31 18:13:34 [来源]:郑州PHP培训学校

   探究PHP浮点类型取整的使用规则

  PHP浮点类型取整的函数有很多种,包括ceil,floor,round,intval。我们可以根据自己的实际情况来具体的选用,以达到我们的需求。
  我们在实际的编码中经常会用到取整的需求,今天我们就为大家详细介绍了一些PHP浮点类型取整的函数。经常用到的PHP浮点类型取整函数,主要是:ceil,floor,round,intval 。
  PHP浮点类型取整之ceil -- 进一法取整
  说明
  float ceil ( float value )
  返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
  例子 1. ceil() 例子
  < ?php
  echo ceil(4.3); // 5
  echo ceil(9.999); // 10
  ?>
  PHP浮点类型取整之floor -- 舍去法取整
  说明
  float floor ( float value )
  返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
  例子 1. floor() 例子
  < ?php
  echo floor(4.3); // 4
  echo floor(9.999); // 9
  ?>
  PHP浮点类型取整之round -- 对浮点数进行四舍五入说明
  float round ( float val [, int precision] )返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。
  例子 1. round() 例子
  < ?php
  echo round(3.4); // 3
  echo round(3.5); // 4
  echo round(3.6); // 4
  echo round(3.6, 0); // 4
  echo round(1.95583, 2); // 1.96
  echo round(1241757, -3); // 1242000
  echo round(5.045, 2); // 5.05
  echo round(5.055, 2); // 5.06
  ?>
  PHP浮点类型取整之intval---对变数转成整数型态例子intval()
  < ?php
  echo intval(4.3); //4
  echo intval(4.6); // 4
  ?>
  希望以上介绍的PHP浮点类型取整的相关函数对大家有所帮助。
  解读phpMyAdmin配置的具体方法
  phpMyAdmin配置是一个比较繁杂的步骤,没有一定经验的程序员是很那正确快速的进行正确的操作。我们将为大家介绍具体的配置方法。
  我们在对phpMyAdmin进行安装后,还需要对其进行详细的配置,下面我们就为大家介绍如何正确的执行phpMyAdmin配置所有可配置数据都放在config.inc.php3中。
  $cfgServers 数组
  从1.4.2版本开始,phpMyAdmin支持对多个MySQL-server的管理。所以,增加了$cfgServers数组来存放不同服务器的登 录信息。$cfgServers[1]["host"]包含了第一个服务器的主机名,$cfgServers[2]["host"]为第二个服务器的主机 等,等等。如果你只有一个服务器要管理,可以简单地不去理会其它$cfgServers入口的主机名。
  $cfgServers[n]["port"] 字符串
  第n个MySQL服务器的端口号。缺省值为3300(保留空值)。
  phpMyAdmin配置之$cfgServers[n]["host"] 字符串第n个MySQL服务器的主机名。例如,localhost。
  $cfgServers[n]["adv_auth"] 布尔值
  对这个服务器应该使用基本或是高级认证方式。基本认证方式($adv_auth = false)是普通的老的作法:
  用 户名和口令被存在config.inc.php3中。高级认证方式($adv_auth = true)从1.3.0版开始引入,允许你通过HTTP- Auth来作为合法的MySQL的用户进行登录。在config.inc中你只需要提供一个标准用户,他能够连接到MySQL上并且可以读出mysql库 的user/db表(看$cfgServers[n]["stduser"])。
  推荐使用高级方式管理的场合:
  当phpMyAdmin运行在多用户环境下,人们拥有shell处理权限时,你不想知道MySQL的用户名/口令。
  当你想让用户存取他们自已的数据库,并且不想他们干扰其他人。
  高级认证方式是安全的,因为标准用户只需要对mysql库的只读权限。MySQL口令不能被容易的破解,所以对于一个普通用户没有机会看到其它用户的明文口令。
  $cfgServers[n]["user"] 字符串
  $cfgServers[n]["password"] 字符串
  当使用基本认证方式时,phpMyAdmin配置将使用用户名/口令对同这个MySQL服务器连接。当使用高级认证方式时则不需要。
  $cfgServers[n]["stduser"] 字符串
  $cfgServers[n]["stdpass"] 字符串
  当使用高级认证方式时,用户名/口令对被用于校验真正的用户名/口令对。这个用户必须能够连接MySQL,而且可以读取mysql库的user表。当使用基本认证方式时则不需要。
  $cfgServers[n]["only_db"] 字符串
  如果设置了一个数据库名,只有这个数据库将显示给用户。
  $cfgServers[n]["verbose"] 字符串
  只有在多服务器入口时进行phpMyAdmin配置才有用。如果设置了,这个字符串将被显示出来,用来代替在主页面中的下接菜单中的主机名。例如,如果你想在系统只显示某些数据库,这个可能就有用了。
  $cfgManualBase 字符串
  如果设为一个URL(它指向MySQL文档),就会创建相应的帮助链接。
  $cfgPersistentConnections 布尔值
  是否使用持续连接(mysql_connect或mysql_pconnect)。
  $cfgConfirm 布尔值
  当你将要丢失数据时是否应该显示一个警告信息("你真的确定要...")。
  phpMyAdmin配置之$cfgMaxRows 整数
  当浏览一个结果集时显示的记录数。如果结果集包含了更多的数据,将显示前页/后页的链接。
  $cfgMaxInputsize 整数
  当向一个表增加一条新的记录时,编辑字段的大小。
  $cfgBorder 整数
  表格边界的大小。
  $cfgThBgcolor 字符串 [HTML 颜色]
  用在表头的颜色。
  $cfgBgcolorOne 字符串 [HTML 颜色]
  表格行第一行的颜色。
  $cfgBgcolorTwo 字符串 [HTML 颜色]
  表格行第二行的颜色。
  phpMyAdmin配置之$cfgOrder 字符串 ["DESC"|"ASC"]
  定义了当你点击字段名时,字段是以升序("ASC")显示还是以降序("DESC")显示。
  $cfgShowBlob 布尔值
  定义了当浏览一个表的内容时,是否显示BLOB字段。
  如何高效优化PHP代码解析损耗
  PHP代码解析损耗的优化目标是一个访问只运行一个php文件,并且这个文件里不包含任何与这个流程无关的代码。
  程序员们在进行PHP代码编程中总会希望对自己的代码程序进行最优化的操作,使程序尽量的轻便简洁。我们在性能分析shopex性能的时候。
  教你学会WinXP搭建PHP开发环境
  发现用在PHP的语法解析上的损耗占了很大比重,如果用valgrind看他的C调用的话,就会发现大约50%的时间被用在lex&yacc上面。也就是由PHP代码转成opcode的部分。即PHP代码解析损耗。
  这个方面PHP代码解析损耗的优化极限目标是: 一个访问只运行一个PHP文件,并且这个文件里不包含任何与这个流程无关的代码。
  如何兼顾代码结构容易理解和性能是个挑战
  我们的处理思路是,通过类似smarty的编译系统,将访问编译成一个个文件:因为shopex是mvc的结构,那么编译粒度就每个控制器的方法对应一个流程文件。
  当控制器第一次调用时,通过一种方法监控流经的每个model-method,子过程等等,最后抽取剥离出来,加上公用的数据库连接函数,配置文件等等一起组合成一个单一的终极PHP文件。
  至于缓存的更新基本就是版本的更新,每次升级的时候。touch一个cachestat文件的最后修改时间即可。
  那么实现的挑战有两个:
  * 一个叫model的函数化 (这样叫很酷,有点像虚的死神化) 。是弱化model层对象特性,让类退化为仅是函数的容器,减少继承,重载这些应用。
  * 二是实现一个自己的编译引擎。
  上面两条最新的shopex485已经走了很远了,商品和订单的函数都已经拆分了。第二个PHP代码解析损耗的解决办法是我们自己实现了一个叫tramsy的解析器( 翻转(smart)+y ),特点是把大量的插件改成了编译型。强化了编译插件的特性,增加了一种编译型modifier的插件类型。并且提出了变量预绑定的概念:
  {if $var=1}
  yes
  {elseif $var=2}
  no
  {else}
  what?
  {/if}
  如果是原生的smarty,生成的代码是:
  vars['var']==1){ ?>
  yes
  vars['var']==2){ ?>
  no
  what?
  如果在tramsy里,程序员预测var一定是1,并且有把握在其值改变的时候系统自动清除模板缓存,就可以把他设置为”预绑定变量”
  那么最终生成的代码就是:
  no
  这个设计大约减少了一倍多的编译结果。性能提升了大约20%,极大的优化了PHP代码解析损耗。
 

上一篇:初步了解PHP获取数据库表信息函数

下一篇:概论为什么PHP全局变量不能生效