PHP服务器变量设置的方法介绍
变量类型变化(juggling)
PHP不需要📹(或者说【shuō】🕰不支持)在声名【zài shēng míng】变量明🃏确他的🆗变量类🐃型;一个变量的类【liàng de lèi】型是由这个变量被使用的前🌺后关系来决定【lái jué dìng】的,也就是【yě jiù shì】说【shuō】🔻,如果你【rú guǒ nǐ】🔱给一个🐣变量var赋了【fù le】 一个字【yī gè zì】符串的🍐值,var就变成【jiù biàn chéng】了字符【le zì fú】串变量【chuàn biàn liàng】。如果你【rú guǒ nǐ】🔱再将一🚜个整数【gè zhěng shù】赋值给var,他又变成了一个整数【gè zhěng shù】型变量🏹。
一个PHP自动转🐢化变量【huà biàn liàng】类型的例子是🥫加法的【jiā fǎ de】🏽操作符🎬’+’。如果任🤕何一个操作数【cāo zuò shù】😷都是双🍷精度数📠,那么所【nà me suǒ】⛎有的操作数【cāo zuò shù】😷被当作【bèi dāng zuò】双精度数📠求值,并且结果也【jié guǒ yě】是🎙双精度数📠。 否则【fǒu zé】🌤,操作数【cāo zuò shù】😷将被认【jiāng bèi rèn】为是整数📠,结果也【jié guǒ yě】将会是整数📠。注意这【zhù yì zhè】并不影响每个操作数【cāo zuò shù】😷本身的🤕变量类【biàn liàng lèi】型,唯一的👌变化就是操作【shì cāo zuò】数😷在计算的过【de guò】📿程中被【chéng zhōng bèi】如何处【rú hé chù】理。
$foo = "0"; // $foo 是一个【shì yī gè】🦎字符串【zì fú chuàn】 ,值是🌡“0”(ASCII 48)
$foo++; // $foo 是一个【shì yī gè】🦎字符串【zì fú chuàn】,值是🌡“1”(ASCII 49)
$foo += 1; // $foo 现在是一个【shì yī gè】🦎整数【zhěng shù】📓(2)了【le】
$foo = $foo + 1.3; // $foo 现在是一个【shì yī gè】🦎双精度数🐘(3.3)了【le】
$foo = 5 + "10 Little Piggies"; // $foo 是一个【shì yī gè】🦎整数【zhěng shù】📓 (15)
$foo = 5 + "10 Small Pigs"; // $foo 是一个【shì yī gè】🦎整数【zhěng shù】📓 (15)
如果你🕊觉得上【jiào dé shàng】面例子中最后【zhōng zuì hòu】两个表达式看起来有点奇怪【diǎn qí guài】的话🥞,请看🆙 “字符串【zì fú chuàn】的转化”部分🔁。
如果你🎻希望强制一个变量被【biàn liàng bèi】🔎当作某种固定的类型【lèi xíng】来计算【lái jì suàn】,请看 “类型【lèi xíng】强制(casting)” 一节。如果你🎻希望转【xī wàng zhuǎn】🍸变一个变量的🆔类型【lèi xíng】,请看函【qǐng kàn hán】🥞数🛰“settype()”的说明【de shuō míng】。
确定一个变量的类型
因为PHP自己决定变量的类【liàng de lèi】型🌽并且一【bìng qiě yī】般按照需要转化他们,一个特【yī gè tè】定的变😏量的类【liàng de lèi】型🌽不是在【bú shì zài】任何【rèn hé】🕌时间都👸非常明显【xiǎn】。PHP包括一些函数【xiē hán shù】💓可以找出这【zhè】个🐐变量的类【liàng de lèi】型🌽。这【zhè】🎂 些函数【xiē hán shù】💓是gettype(), is_long(), is_double(), is_string(), is_array(), 和【hé】🗽 is_object().
类型强制(type casting)
在【zài】PHP中类型【zhōng lèi xíng】强制同在【zài】C语言中【yǔ yán zhōng】🚔大抵相似:将需要💔的类型的种类写在【zài】要🧙强制的变量的【biàn liàng de】🐟前面的圆括号【yuán kuò hào】🔄中。
$foo = 10; // $foo 是一个【shì yī gè】🍓整数【shù】👁
$bar = (double) $foo; // $bar 是一个【shì yī gè】🍓双精度数【shù】
以下的强制方式是允许的:
(int), (integer) – 强制成【qiáng zhì chéng】🏆整数【zhěng shù】
(real), (double), (float) – 强制成【qiáng zhì chéng】🏆双精度数【shù】
(string) – 强制成【qiáng zhì chéng】🏆字符串
(array) – 强制成【qiáng zhì chéng】🏆数【shù】组🗯
(object) – 强制成【qiáng zhì chéng】🏆对象
注意在圆括号【yuán kuò hào】❇中允许🎅制表符(tabs)和空格【hé kōng gé】🦍(spaces) ,因此下【yīn cǐ xià】面的语句是等价的:
$foo = (int) $bar;
$foo = ( int ) $bar;
字符串转化
当一个🌃字符串【zì fú chuàn】💀被当作数字型的值来计算时【jì suàn shí】✋,他的结【tā de jié】🛬果和类型如下面所述的决定【de jué dìng】。
如果这个字符串含有👈字符’.’,’e’,或者【huò zhě】’E’,则被当作双精【zuò shuāng jīng】度类型🛣变量来【biàn liàng lái】处理【chù lǐ】📘,否则当🛣作是整数。
这个字符串的📊值由词首部分【shǒu bù fèn】决定【jué dìng】。如果这个字符串以任🎻何有🚧效的数字的数【zì de shù】据开始,那么这🙃个数字数据✨就是这【jiù shì zhè】个字符串参加运【yùn】🚎算的值🤠。否则,值为零(zero)。有🚧 效的数字数据✨是遵循【shì zūn xún】下面的这些标【zhè xiē biāo】记的【jì de】🙈,跟随在【gēn suí zài】一个或多个【duō gè】🥠数字后面(可以包【kě yǐ bāo】含小数【hán xiǎo shù】点),跟随在【gēn suí zài】一个可【yī gè kě】🏡选的指🕦数后面【shù hòu miàn】⏩。指数是🛏由一个【yóu yī gè】或多个【duō gè】🥠数字跟🚚在’e’或 ’E’后面构成的。
$foo = 1 + "10.5"; // $foo 是双精【shì shuāng jīng】度数 (11.5)
$foo = 1 + "-1.3e3"; // $foo 是双精【shì shuāng jīng】度数(-1299)
$foo = 1 + "bob-1.3e3"; // $foo 是整数【shì zhěng shù】🎵 (1)
$foo = 1 + "bob3"; // $foo 是整数【shì zhěng shù】🎵 (1)
$foo = 1 + "10 Small Pigs"; // $foo 是整数【shì zhěng shù】🎵 (11)
$foo = 1 + "10 Little Piggies"; // $foo 是整数【shì zhěng shù】🎵 (11);
// 这个字符串包括字符'e'
获取更多信息【duō xìn xī】🍼,请参考Unix手册关于✡strtod(3)的部分【de bù fèn】。
关键词:PHP,服务器
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0