每日练习
如果你仔细看过在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、执行程序段将输出(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
网页题目:每日练习
URL地址:http://pwwzsj.com/article/cjejih.html