变量类型变化(juggling)
PHP不需要(或者说不支持)在声名变量明确他的变量类型;一个变量的类型是由这个变量被使用的前后关系来决定的,也就是说,如果你给一个变量var赋了 一个字符串的值,var就变成了字符串变量。如果你再将一个整数赋值给var,他又变成了一个整数型变量。
一个PHP自动转化变量类型的例子是加法的操作符’+’。如果任何一个操作数都是双精度数,那么所有的操作数被当作双精度数求值,并且结果也是双精度数。否则,操作数将被认为是整数,结果也将会是整数。注意这并不影响每个操作数本身的变量类型,唯一的变化就是操作数在计算的过程中被如何处理。
$foo = "0"; // $foo 是一个字符串 ,值是“0”(ASCII 48)
$foo++; // $foo 是一个字符串,值是“1”(ASCII 49)
$foo += 1; // $foo 现在是一个整数(2)了
$foo = $foo + 1.3; // $foo 现在是一个双精度数(3.3)了
$foo = 5 + "10 Little Piggies"; // $foo 是一个整数 (15)
$foo = 5 + "10 Small Pigs"; // $foo 是一个整数 (15)
如果你觉得上面例子中最后两个表达式看起来有点奇怪的话,请看 “字符串的转化”部分。
如果你希望强制一个变量被当作某种固定的类型来计算,请看 “类型强制(casting)” 一节。如果你希望转变一个变量的类型,请看函数“settype()”的说明。
确定一个变量的类型
因为PHP自己决定变量的类型并且一般按照需要转化他们,一个特定的变量的类型不是在任何时间都非常明显。PHP包括一些函数可以找出这个变量的类型。这 些函数是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object().
类型强制(type casting)
在PHP中类型强制同在C语言中大抵相似:将需要的类型的种类写在要强制的变量的前面的圆括号中。
$foo = 10; // $foo 是一个整数
$bar = (double) $foo; // $bar 是一个双精度数
以下的强制方式是允许的:
(int), (integer) – 强制成整数
(real), (double), (float) – 强制成双精度数
(string) – 强制成字符串
(array) – 强制成数组
(object) – 强制成对象
注意在圆括号中允许制表符(tabs)和空格(spaces) ,因此下面的语句是等价的:
$foo = (int) $bar;
$foo = ( int ) $bar;
字符串转化
当一个字符串被当作数字型的值来计算时,他的结果和类型如下面所述的决定。
如果这个字符串含有字符’.’,’e’,或者’E’,则被当作双精度类型变量来处理,否则当作是整数。
这个字符串的值由词首部分决定。如果这个字符串以任何有效的数字的数据开始,那么这个数字数据就是这个字符串参加运算的值。否则,值为零(zero)。有效的数字数据是遵循下面的这些标记的,跟随在一个或多个数字后面(可以包含小数点),跟随在一个可选的指数后面。指数是由一个或多个数字跟在’e’或 ’E’后面构成的。
$foo = 1 + "10.5"; // $foo 是双精度数 (11.5)
$foo = 1 + "-1.3e3"; // $foo 是双精度数(-1299)
$foo = 1 + "bob-1.3e3"; // $foo 是整数 (1)
$foo = 1 + "bob3"; // $foo 是整数 (1)
$foo = 1 + "10 Small Pigs"; // $foo 是整数 (11)
$foo = 1 + "10 Little Piggies"; // $foo 是整数 (11);
// 这个字符串包括字符'e'
获取更多信息,请参考Unix手册关于strtod(3)的部分。
分享到:
相关推荐
### PHP服务器变量详解 在PHP开发中,服务器变量是一类非常重要的环境变量,它们由Web服务器设置,并且可以通过`$_SERVER`超全局数组访问。这些变量提供了关于当前运行脚本和服务器环境的信息,对于理解用户的请求...
在 PHP 中,获取当前 URL 路径的函数及服务器变量是非常重要的,本文将详细介绍 QUERY_STRING、REQUEST_URI、SCRIPT_NAME 和 PHP_SELF 等服务器变量的定义、使用场景和实践示例。 QUERY_STRING QUERY_STRING 变量...
【天心服务器变量探针】是一个小巧而强大的工具,主要用于监测和分析服务器上的各种变量状态。这个探针能够深入到服务器的内部运作,为开发者和系统管理员提供宝贵的实时数据,帮助他们更好地理解和优化服务器性能。...
在IT行业中,PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域有着重要的地位。PHP 5.5是PHP的一个重要版本,它引入了许多新特性和改进,以提高性能和开发者体验。在这个环境中,我们将讨论如何配置PHP 5.5...
下面将详细介绍这些关键的PHP变量。 1. 预定义变量: 预定义变量是PHP为开发者提供的内置变量,可以直接在代码中使用,无需预先声明。以下是一些常见的预定义变量: - **$_SERVER**:这个超级全局数组包含了服务器...
但是,当需要在HTML中使用变量时,我们可以借助服务器端脚本语言来实现这一目标,如JavaScript、PHP、ASP(Active Server Pages)等。在你给出的例子中,使用的是ASP(VBScript)的语法,这是微软在上世纪90年代推出...
本文将详细介绍`QUERY_STRING`、`REQUEST_URI`、`SCRIPT_NAME`和`PHP_SELF`四个关键服务器变量,并通过实例展示它们的使用方法。 #### 1. $_SERVER["QUERY_STRING"] **说明:** `QUERY_STRING`用于获取URL中的查询...
`$_SERVER`数组包含了与PHP脚本运行时环境相关的各种服务器变量,例如请求方法、脚本位置、URL、查询字符串等。在本文中,我们将深入探讨`$_SERVER["QUERY_STRING"]`、`$_SERVER["REQUEST_URI"]`、`$_SERVER["SCRIPT...
这些变量通常用于存储请求环境中的信息(如 HTTP 请求参数、服务器变量等),并且在整个脚本执行期间都是可用的。 #### 二、超全局变量列表 下面是 PHP 中常见的超全局变量及其用途: 1. **$GLOBALS**: 存储所有...
以上介绍了PHP中三种常见的变量传递方法:表单提交、URL参数传递和HTTP重定向。每种方法都有其适用场景和局限性,在实际开发过程中应根据具体需求选择合适的方案。此外,无论采用哪种方式,都需要关注数据安全性和...
### PHP 创建和使用 Session Cookie 变量 #### Session 基础 Session 是一种服务器端...综上所述,Session 和 Cookie 都是 PHP 中非常重要的概念,了解它们的使用方法和区别对于开发高质量的 Web 应用程序至关重要。
本文将详细介绍几种常用的页面间变量传递方法,并通过具体示例加以说明。 #### 一、使用Form表单中的Hidden隐藏域 这种方法的基本思路是将需要传递的数据封装成HTML表单的一部分,并通过POST或GET方式提交至目标...
**Barbushin PHP Console** 是一款用于PHP开发的工具,特别设计用于在谷歌浏览器(Google Chrome)中方便地处理PHP错误、转储变量以及执行远程PHP代码。这个工具极大地提升了开发者在调试PHP应用程序时的效率,使得...
`curl_init()` 初始化CURL会话,`curl_setopt()` 设置选项,如URL、POST方式和返回结果至变量,而非直接输出。最后,`curl_exec()` 执行请求并关闭CURL会话,结果通过`explode()` 函数拆分为数组处理。 其次,...
JS变量转PHP变量的情况通常出现在需要在用户交互后更新服务器端数据时,例如用户填写表单或者进行其他动态操作。标题"js变量利用ajax转php变量"所涉及的核心知识点包括: 1. **JavaScript(JS)变量**:JavaScript...
以上就是使用PHP检查服务器是否支持特定模块的基本方法。在实际开发中,根据项目需求,我们可能还需要结合其他函数和技巧,如`phpinfo()`函数,它可以输出详细的PHP配置信息,帮助开发者了解服务器的环境配置。但...
这些变量是由服务器设置的,能够提供环境信息。 总结来说,PHP的变量作用域有以下几种: 1. 全局作用域:在函数外部定义的变量,全局可访问。 2. 局部作用域:在函数内部定义的变量,仅限于函数内部访问。 3. 超...
### JDK环境变量设置详解 #### 一、JDK概述及下载安装 JDK(Java Development Kit),即Java开发工具包,是开发Java程序的基础。它包含了编译、调试和运行Java程序所需的所有工具。为了能够顺利地开发Java应用程序...
这种做法常见于配置文件或者数据存储,其中包含了网站运行所需的设置和变量。下面将详细探讨这一主题。 首先,我们需要理解PHP如何读取和解析.php文件。PHP是一种服务器端脚本语言,当服务器处理.php文件时,它会...