文档章节

每日练习

lbc19920615
 lbc19920615
发布于 2014/04/17 19:48
字数 938
阅读 75
收藏 1

1、求解intval((0.1+0.7)*10)?

7

如果你仔细看过在PHP手册中,对于浮点数据类型的说明,就会看到其中有专门的一个警告提示,就谈到这个问题:
关于浮点数精度的警告
   显然简单的十进制分数如同 0.1 或 0.7不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:
例如,floor((0.1+0.7)*10)通常会返回 7 而不是预期中的  8,因为该结果内部的表示其实是类似 7.9。  
   这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的    1/3 变成了 0.3。  
   所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。


2、在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;获取服务器管理员邮箱在预定义变量(2)中。

echo $_SERVER['PHP_SELF']; 

echo $_SERVER["SERVER_ADMIN"];

总结下$_SERVER这个超级变量

$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。

$_SERVER['argv'] #传递给该脚本的参数。

$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。

$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。

$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。

$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。

$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。

$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。

$_SERVER['QUERY_STRING'] #查询(query)的字符串。

$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。

$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。

$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。

$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如:“en”。

$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。

$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。

$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。

$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。

$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off

$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。

$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名

$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_FILENAME'] #当前执行脚本绝对路径名。

$_SERVER['SERVER_ADMIN'] #管理员信息

$_SERVER['SERVER_PORT'] #服务器所使用的端口

$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。

$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。

$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。

$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html”。


3、执行程序段<?php echo 8%(-2) ?>将输出(3)

0


4. php中简单的短路问题

    $a = 3;
    $b = 5;
    if ($a = 5 || $b = 5) {
        $a++;
        $b++;
    }
    echo $a;

可以看成bool ? 表达式1 : 表达式2 这里的bool是($a=5||$b=5)看清楚里面是赋值,当判断$a=5 恒成立,则返回$a 值为1 ,而忽视了后面的$b赋值,然后通过 $b++;输出 1---4

© 著作权归作者所有

lbc19920615
粉丝 6
博文 45
码字总数 11562
作品 0
南京
程序员
私信 提问
加载中

评论(1)

梁金堂
梁金堂
如果我写的话,我会这样写floor((0.1+0.7)*10+0.5),进行进行补偿
敏捷结果30天之第九天:使用必须、应该、可以来确定每天事情的优先级

一.现状 每天都有一堆待做事情等着完成,但是在每日开始之前并没有进行任务重要性排序,而 是想起做哪个就先做哪个,等到一天结束之后发现很重要的事情我还没有做呢? 二.学习 1.对事情安排有...

长平狐
2013/06/17
43
0
程序员:感觉技术停滞时,该怎么办?

在旧文《技术方向的选择》的末尾,我写道:“停留在原地纠结,什么也不会改变。”。当做出了选择就该出发了。为了习得一门技术或技能,我们需要不断地练习,但如果一直在练习,却感觉不到进步...

达尔文
2017/06/26
4.8K
17
敏捷个人手机应用:如何进行敏捷个人练习

敏捷个人的价值观是快乐、高效、平衡,针对每一个价值观,我们都有一个练习来帮助大家去培养,下面我简单介绍一下它们,以便大家可以针对自己的需要选择先做哪个练习。 练习介绍 平衡个人练习...

jingen_zhou
2018/06/29
0
0
TMaize/zh_daily

项目重写,项目预览新地址http://test.tmaize.net:8080/zhdaily2/ 新地址 GitHub 码云 zh_daily是什么? 在线访问V1.1http://test.tmaize.net:8080/zhdaily/ (时间选择器目前只能在Chrome内核...

TMaize
2016/11/10
0
0
敏捷个人手机应用:如何使用时中法习惯

我们在 敏捷个人手机应用:如何使用时中法目标 中介绍了目标,今天要介绍另一个重要的话题,那就是习惯。 下面说一下如何使用这个功能: 打开手机应用(下载见 http://www.zhoujingen.cn ),...

jingen_zhou
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样在磁盘上查找MySQL表的大小?这里有答案

我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应...

Linux就该这么学
40分钟前
5
0
Redis

一、Redis支持的几种数据类型:字符串、List、SET、HASH、ZSET 二、Redis的缓存技术主要是为了降低关系数据库的负载并减少网站成本 三、在Redis里面,被MULTI命令和EXEC命令包围的所有命令会...

BobwithB
42分钟前
4
0
MongoDB基础之入门

MongoDB基础之入门 一、MONGODB简介 MongoDB由C/C++开发,是一种强大、灵活、可扩展的数据存储方式。它扩展了关系型数据库的众多有用功能,例如:辅助索引、范围查询和排序。MongoDB还内置了...

星汉
44分钟前
7
0
c++ 神奇的赋值用法

c++ 神奇的赋值用法(第8章)

天王盖地虎626
今天
5
0
Jquery操作UI之设置字体大小

先获取字体大小,进行处理。再将修改的值保存。 slice() 方法可从已有的数组中返回选定的元素。 arrayObject.slice(start,end)。 start 必需。规定从何处开始选取。如果是负数,那么它规定从...

前端老手
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部