PHP教程之基本语法

上传人:痛*** 文档编号:68282855 上传时间:2022-04-02 格式:DOC 页数:60 大小:464KB
返回 下载 相关 举报
PHP教程之基本语法_第1页
第1页 / 共60页
PHP教程之基本语法_第2页
第2页 / 共60页
PHP教程之基本语法_第3页
第3页 / 共60页
点击查看更多>>
资源描述
第一章基本语法第一节PHP代码书写PHP代码我们以?php开始,以?结束。如: ?phpecho我正在学习PHP”;在浏览器中将输岀:我正在学习PHP这种风格我们称之为标准风格,我们也可省去“PHP”三个字母,即我们常常说 的简短风格。如:同样我们在浏览器中可以看到:我正在学习PHP此外,还有Script风格,如:echo*我正在学习PHP;以及ASP风格,如:ASP风格在默认情况下是被禁止的,如果需要运行,需修改aspjags选项,在PHP.int 里。我们一般用标准风格及简短风格,Script风格及ASP风格基本不用,但是,为 了达到最好的兼容性,我们推荐使用标准风格,而不使用简短风格。第二节PHP文本注释在PHP中,我们使用u/n来编写单行注释,或者使用“广*/ ”来编写多 行注释,也可用“當来注释,但这个不太常用。文本的注释要写在代码的上方或右边,不要写在代码的下方。v?php/echo()函数输出一个或多个字符串。/*echo()实际上不是一个函数,因此您无需对其使用括号。不过,如果您希望向echo()传递一个或多个参数,那么使用括号会发生解析错误。*/echo我正在学习PHPM;?在浏览器中只输出:我正在学习PHP而注释了的文本却没有显示。第三节PHP输出函数PHP输出函数有echo()函数与print()函数以及格式化输出函数printf()函数和 sprintf()函数。、echo()函数echo()函数输出一个或多个字符串,可以用圆括号,也可不用,在实际应用中, 我们一般不用圆括号;echo更象一条语句,无返回值。?phpecho(天天气很好,我们出去玩! M).MM;echo”今天天气很妬 我们出去玩! ”;?浏览器中输出为:今天天气很好,我们出去玩!今天天气很好,我们出去玩!二、pint()函数print()函数输岀一个或多个字符串,可以用圆括号,也可不用,在实际应用中, 我们一般不用圆括号;pint()函数有返回值,其返回值为1,当其执行失败(比 如断线)时返回flaseo”;print”今天天气很妬我们出去玩! ”vbr”;echo print”今天天气很好,我们出去玩! ”;?浏览器中输出为:今天天气很好,我们出去玩!今天天气很好,我们出去玩!今天天气很好,我们出去玩! 1第一句、第二句都输出了 “今天天气很好,我们出去玩!”,第三除了输出了 “今 天天气很好,我们出去玩!”夕卜,还输出了返回值echo()函数与print()函数两者的功能几乎完全一样,有一点不同就是echo()函数 无返回值,print。函数有返回值。且echo()函数稍快于print()函数。三、printf()函数printf()函数输岀格式化的字符串。其中格式化字符串包括两部分内容:一部分是 正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“”开始, 后跟一个或几个规定字符,用来确定输岀内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数 个数一样多,各参数之间用分开,且顺序一一对应,否则将会岀现意想不 到的错误。常用类型转换符%b整数转二进制%c整数转ASCII码%d整数转有符号十进制%f倍精度转浮点%o整数转八进制%s整数转字符串%u整数转无符号十进制%x整数转十六进制(小写)%x整数转十六进制(大写)浏览器输岀的内容是:今天我买了 10本书printf()函数有返回值,其返回值为字符串的长度。此时浏览器输出的内容是:今天我买了 10本书16其中“今天我买了 10本书”为printf()函数格式化后的字符串,“16”为printf()函 数的返回值字符串的长度16,需要通过echo才能输出。四、sprintf()函数sprintf()函数与printf()函数类似,printf()函数的返回值是字符串的长度,而sprintf() 函数的返回值侧是字符串的本身。因此,sprintf()函数必须通过echo才能输岀。我们在浏览器中可以看到输岀为今天我买了 10本书,如果省略掉了 echo,那么浏览 器中输出为空。sprintf()和printf()的用法和C语言中的printf()非常相似。我们经常用sprintf()将十进制转换为其它进制。如:?php$a = 12;echo sprintf (%b,$a);在浏览器中输岀为:1100即将12转为二进制为1100o第四节卩肝变变量用于存储值,比如数字、文本字符串或数组。一旦设置了某个变量,我们就 可以在脚本中重复地使用它。PHP的变量必须以$符开始,然后再加上变量名。一、变量的命名1. 变量名必须以字母或者下划线开头,后面跟上任意数量的字母、数字或者 下划线。2. 变量名不能以数字开头,中间不能有空格及运算符。3. 变量名严格区分大小写,即$UserName与$username是不同的变量。4. 为避免命名冲突,不允许使用与PHP内置的函数相同的名称。5. 在为变量命名时,尽量使用有意义的字符串。$n ame;$_password;$book1;二、变的赋值为变量赋值有两种方式:传值赋值和引用赋值,这两种赋值方式在对数据的处理 上存在很大差别。这种赋值方式使用u=n直接将一个变量(或表达式)的值赋给变量。使用这种 赋值方式,等号两边的变量值互不影响,任何一个变量值的变化都不会影响到另 一个变量。从根本上讲,传值赋值是通过在存储区域复制一个变量的副本来实现 的。应用传值赋值的示例代码如下。”;echo ”变b的值为”$b;?在上面的代码中,执行u$a = 33”语句时,系统会在内存中为变量a开辟一个 存储空间,并将“33”这个数值存储到该存储空间。执行“$b = $a”语句时,系统会在内存中为变量b开辟一个存储空间,并将变 量a所指向的存储空间的内容复制到变量b所指向的存储空间。执行u$b = 44”语句时,系统将变量b所指向的存储空间保存的值更改为“44”, 而变量a所指向的存储空间保存的值仍然是“33”。因此,我们在浏览器上看到的内容为:变量a的值为33变量b的值为442、引用赋值引用赋值同样也是使用u=n将一个变量的值赋给另一个变量,但是需要在等号 右边的变量前面加上一个符号。实际上这种赋值方式并不是真正意义上的 赋值,而是一个变量引用另一个变量。在使用引用赋值的时候,两个变量将会指 向内存中同一存储空间。因此任何一个变量的变化都会引起另外一个变量的变 化。应用引用赋值的示例代码如下。?php$a = 33;$b = &$3;$b = 44;echo ”变量a的值为M.$a.;echo ”变量b的值为”$b;?在上面的代码中执行“$a = 33”语句时,对内存进行操作的过程与传值赋值相 同,这里就不再介绍了。执行u$b = &$语句后,变量b将会指向变量a所 占有的存储空间。执行u$b = 44M语句后,变量b所指向的存储空间保存的值变为“44”。此时由 于变量a也指向此存储空间,所以变量a的值也会变为“44”。因此,我们在浏览器上看到的内容为:变量a的值为44变量b的值为44三、变的作用域在使用PHP语言进行开发的时候,我们几乎可以在任何位萱声明变量。但是变 量声明位置及声明方式的不同决定了变量作用戚的不同。所谓的变量作用域,指 的是变量在哪些范围内能被使用,在哪些范围内不能被使用。PHP中的变量按 照作用域的不同可以分为局部变量和全局变量。1v局部变局部变量是声明在某一函数体内的变量,该变量的作用范围仅限于其所在的函数 体的内部。如果在该函数体的外部引用这个变量,则系统将会认为引用的是另外 个变量。应用局部变量的示例代码如下。?phpfunction local()$a = ”“这是内部函数罗衽函数内部声明一个变并賦值echo ”函数内部变的值为M.$a.M-;local();调用函ftlocalQ,用来打印出变*a的值$a = 这是外部函数杯;在函数外部再次声明变并赋另一个值echo ”函数外部变的值为”$a;在浏览器中输岀为:函数内部变量a的值为“这是内部函数 7函数外部变量a的值为“这是外部函数”2、全局变量全局变量可以在程序的任何地方被访问,这种变量的作用范围是最广泛的。要将 一个变量声明为全局变量,只需在该变量前面加上“global”关键字,不区分大 小写,也可以是“GLOBAL”。使用全局变量,我们能够实现在函数内部引用函 数外部的参数,或者在函数外部引用函数内部的参数。应用全局变量的示例代码如下。在函数内部引用函数外部的参数:?php$a =这是外部函数;在外部定义一个变function local()global $*/将变声明为全局变echo ”在local函数内部获得变的值为,.$a/,H;local(); /调用函ftlocal()F用于输出local函数内部变的值?在浏览器中输出为:在local函数内部获得变量a的值为“这是外部函数”在函数外部引用函数内部的参数:在浏览器中输出为:在local函数外部获得变量a的值为“这是内部函数” 应用全局变量虽然能够使我们更加方便地操作变量,但是有的时候变量作用域的 扩大,会给开发带来麻烦,可能会引发一些预料不到的问题。将一个变量声明为全局变量,还有另外一种方法,就是利用$GLOBALSQ数组。3、挣态变函数执行时所产生的临时变量,在函数结束时就会自动消失。当然,因为程序需 要,函数在循坏过程中不希望变量在每次执行完函数就消失的话,那么我们就要 采用静态变量,静态变量是指用static声明的变量,这种变量与局部变量的区别 是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在, 当下次再用到它的时候,可以保留最近一次的值。应用静态变量的示例代码如下。?phpfunction add()static $a = 0;$a+;echo $a.;add 0;add ();add 0;?在浏览器中输出为:123这段程序中,主要定义了一个函数add(),然后分3次调用add()o如果用局部变量的方式来分工这段代码,3次的输岀应该都是仁但实际输出却 是1、2和3。这是因为,变量a在声明的时候被加上了一个修饰符static,这就标志着a变量 在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用 add时,a由于自加变成了 1,这个时候,a就记住自己不再是0,而是1 了, 当我们再次调用add时,a再一次自加,由1变成了 2,。由此,我们就可以 看出静态变量的特性了。4、可变变可变变量是一种独特的变量,它可以动态的改变一个变量的名称,方法就是在该 变量的前面加一个变量符号“$。v?php$a= hello1; 普通变$a = world*; 可变变,相当于$hello=wold;echo $a.wM;echo $a.;echo $hello.;echo M$a $aM.wM;echo ”$a $hello“;这种写法更准确并且会输出同样的结果?在浏览器中输岀为:helloworldworldhello worldhello world5、预定义变量预定义变量又称为超级全局变量数组,是PHP系统中自带的变量,不需要开发 者重新定义,它可让你的程序设计更加的方便快捷。在PHP脚本运行时,PHP 会自动将一些数据放在超级全局数组中。PHP预定义变量变量作用$GLOBALSQ储存当前脚本中的所有全局变量,其KEY为变量名,VALUE为变量值$_SERVERQ当前WEB服务器变量数组$_GET存储以GET方法提交表单中的数据$_POST存储以POST方法提交表单中的数据$_COOKIEQ取得或设置用户浏览器Cookies中存储的变量数组$_FILESQ存储上传文件提交到当前脚本的数据$_ENV0存储当前WEB环境变量$_REQUEST0存储提交表单中所有请求数组,其中包括$_GET、 $_POST、$_COOKIE Jfl$_SESSION 中的所有内容$_SESSION存储当前脚本的会话变量数组四、变量的数据类型数据类型是具有相同特性的一组数据的统称。PHP早就提供了丰富的数据类型, PHP 5中又有更多补充。数据类型可以分为3类:标量数据类型、复合数据类 型和特殊数据类型。标量类型(四种):整型(int, integer)浮点型(float, double, real)布尔型(bool, boolean)宁符串(string)复合类型(两种):数组(array)对象(object)特殊类型(两种):资源(resource)空值(NULL)1 v 整型(integer)PHP中的整型指的是不包含小数部分的数据。在32位操作系统中,整型数据的 有效范围在-2147483648+2147483647”之间。整型数据可以用十进制(基 数为10)、八进制(基数为8,以0作为前缀)或十六进制(基数为16,以Ox13作为前缀)表示,井且可以包含“ + ”和U-Mo整型数据的用法如下面代码所示。?php$a = 100;十进制整型数据15$b = -034; 八进制整型数据$c = OxBF;十六进制整型数据echo $a.n;echo $b.;echo $c;在浏览器中输出为:100-28191如果给定的数字超出了整型数据规定的范围,则会产生数据溢出。对于这种情况, PHP会自动将整型数据转化为浮点型数据。2、浮点型(float)浮点型数据就是通常所说的实数,可分为单精度浮点型数据和双精度浮点型数 据。浮点数主要用于简单整数无法满足的形式,比如长度、重量等数据的表示。 浮点型数据的用法如下面代码所示。?php$a = 1.2;$b :$c =-0.34;= 1.8e4; 该浮点数表1.8X1O4echo $a.*u; echo $b/M; echo $c;?在浏览器中输出为:1.2-0.34180003、布尔型(boolean)布尔型数据是在PHP 4中开始岀现的,一个布尔型的数据只有“true”和“false” 两种取值,分别对应逻辑“真”与逻辑“假”。布尔型变量的用法如下面代码所 示。在使用布尔型数据类型时,“true”和“false”两个取值是不区分大小写的。 也就是说“TRUE”和“FALSE”同样是正确的。在浏览器中输出为:1当布尔值为“true”时,输出为1,当布尔值为“false”时,输岀为空。4、字符串(string)字符串是一个字符的序列。组成字符串的字符是任意的,可以是字母、数字或者 符号。在PHP中没有对字符串的最大长度进行严格的规定。在PHP中定义字 符串有3种方式:使用单引号()定义、使用双引号(*)定义和使用定界符() 定义。下面是一个使用字符串的例子。?php$var = H中国人”;echo ”我是$var.MM;echo 我是$varTvbr:echo M今天天气很好! ,.HM;echo 我们去图书馆。Tvbr”;echo 在浏览器中输出为:我是中国人我是$var今天天气很好!我是中国人我是$var今天天气很好!我们去图书馆。我是一个中国人php中单引号和双引号的最大区别就是,双引号比单引号多一步解析过程。双引 号会把双引号中的变量及转义字符解析出来。而单引号则不管它的内容是什么, 都作为字符串输岀。在双引号中,中文和变量一起使用时,变量最好要用0括起来,或变量前后的字 符串用双引号,再用与变量相连。”;echo -ft们都是$str,应该多学习.w.MM;echo ft们都是“$str”.应该多学习。”;?在浏览器中输岀为:我们都是我们都是年轻人,应该多学习。我们都是年轻人,应该多学习。第一句输岀因为变量没用0括起来,或者没有将字符串分开,再用u.n与变量相 连,因此变量及其后面的字符串不能输出,第二、三句输出都正常。在一般情况下,我们尽量使用单引号,因为在理论上,单引号的运行速度要快些, 如果遇到有变量及转义字符需要解析时,我们才用双引号。F面是一些常用的转义字符:转移序列描述n换行符r回车符t制表符反斜线$美元符”双引号值得注意的是,“n”,“ r”和“ t”三个转义字符在浏览器中不能反应出来, 只能在源文件看到。PHP定界符的作用就是按照原样,包括换行格式什么的,输岀在其内部的东西; 在PHP定界符中的任何特殊字符都不需要转义;PHP定界符中的PHP变量会 被正常的用其值来替换。使用定界符应注意以下几点:(1) 在vvv之后的字符Eof是自己定义的,随便什么都是可以的,但是结尾处 的字符一定要和他一样,他们是成对出现的;(2) 结尾的Eof;, 一定要另起一行,并且除了 Eof;这个定界符结尾标识之外不 能有任何其他字符,前后都不能有,包括空格;(3) 如果在定界符中间岀现有PHP的变量,你只需要像在其它字符串中输岀 一样写就行了,变量$var之所以要用括起来是要告诉PHP解析器这是一个 PHP变量,其实不用也是可以的,但是有可能会产生歧义。5、数组(array)数组是一系列相关的数据以某种特定的方式进行排列而组成的集合。组成这个集 合的各个数据可以是基本数据类型,也可以是复合数据类型;可以是相同的数据 类型,也可以是不同的数据类型。数组里的每一个数据元素都有其唯一的编号,称为索引。索引用于指定数组中特 定的数据元素。在有的语言中数组的索引必须是数字编号,而在PHP中,索引 可以是数字编号,也可以是字符串。一个简单的PHP数组的应用示例代码如下。how ,2=are,three-youw);echo $network2;echo $networkthree;?在浏览器中输岀为:areyou6、对象(object)对象是面向对象语言中的一个核心概念,对象就是类的一个实例。在了解对象之 前我们先简单介绍一下什么是“类”。在面向对象语言中,人们把各个具体事物 的共同特征抽取出来,形成一个一般的概念,也就构成了一个“类”。在PHP中类的定义方式如下。class类名类里包含的内容;在PHP中,通过unewn关键字来实例化一个类并得到该类的一个对象。类和 对象的应用示例如下面代码所示。;$book2 = new Book(); 实例化一 Book类的对ftbook2echo $book2-getBookName(JSP);?21在浏览器中输出为:PHPJSP7、资源(resource)资源是PHP提供的一种特殊数据类型,该数据类型用于表示一个PHP的外部 资源,比如一个数据库的访问操作,或者一个网络流的处理等。虽然资源也是一 种数据类型,但是我们却不能直接对它进行操作。PHP提供了一些特定的函数, 用于建立和使用资源。比如“mysql_connect()”函数用于建立一个MySQL数 据的连接,“fopen()”函数用于打开一个文件等。应用资源数据类型的示例代码如下。?php$cn = mysql_con nect(localhost ,丫 oot);echo get_resource_type($cn).;$fp = fopen(”foo”,”w“);echo get_resource_type($fp);?在浏览器中输出为:mysql linkstream8、空值(NULL)NULL是PHP 4开始引入的一个特殊的数据类型,这种数据类型只有一个值 NULLo在PHP中,如果变量满足以下几种情况,那么该变量的值就为NULL。 变量未被赋予任何值。变量被赋值为NULL。被unset()函数处理后的变量。下面是使用NULL数据类型的一个示例。五、变量类型的转换PHP中的类型转换包括两种方式,即自动类型转换和强制类型转换。下面我们 分别介绍这两种类型转换的实现方式及应用过程。1.自动类型转换自动类型转换是指,在定义变量时不需要指定变量的数据类型,PHP会根据引 用变量的具体应用环境将变量转换为合适的数据类型。如果所有运算数都是数字,则将选取占用字节最长的一种运算数的数据类型作为 基准数据类型;如果运算数为字符串,则将该字符串转型为数字然后再进行求值 运算。字符串转换为数字的规定为如果字符串以数字开头,则只取数字部分而去 除数字后面部分,根据数字部分构成决定转型为整型数据还是浮点型数据;如果 字符串以字母开头,则直接将字符串转换为0。?php$a = 1 +1.23;$b = 2 + M3.14H;$c = 3 + Mabcn;echo $a.u;echo $b”vbi;echo $c.u;?在浏览器中输出为:2.235.143在第1个赋值运算式中,运算数包含了整型数字“什和浮点型数字1.23,首 先取浮点型数据类型作为基准数据类型。赋值后变量a的数据类型为浮点型。在第2个赋值运算式中,运算数包含了整型数字“2”和字符串型数据“3.14”, 首先将字符串转换为浮点型数据“3.14”,然后进行加法运算。赋值后变量b的 数据类型为浮点型。在第3个赋值运算式中,运算数包含了整型数字“3”和字符串型数据“abc”, 首先将字符串转换为整型数字0,然后进行加法运算。赋值后变量c的数据类型 为整型。2、强制类型转换强制类型转换允许我们手动将变量的数据类型转换成为指定的数据类型。PHP 强制类型转换与C语言或者Java语言中的类型转换相似,都是通过在变量前面 加上一个小括号,并把目标数据类型填写在括号中来实现的。在PHP中强制类型转换的具体实现方式如下表所示。PHP强制类型转换的实现方式转换格式转换结果实现方式(int),(integer)将其他数据类型强制转换为整型$a = ”3”;$b = (int)$a; /也可写为$ = (integer)$a;(bool),(boolea n)将其他数据类型 强制转换为布尔型$a = ”3”;$b = (bool)$a; II也可写为$匕=(boolean)$a;(float),(double),(real)将其他数据类型 强制转换为浮点型$a = ”3”;$b = (float)$a;$c = (double)$a;$d = (real)$a;(string)将其他数据类型 强制转换为字符串$a = 3;$b = (strin g)$a;(array)将其他数据类型强制转换为数组$a = ”3”;$b = (array)$a;(object)将其他数据类型强制转换为对象$a = ”3”;$b = (object)$a;虽然PHP提供了比较宽泛的类型转换机制,为开发者提供了很大便利,但同时也存在養一些问题,比如将字符串型数据转换为整型数据该如何转换、将整型数 据转换为布尔型数据该如何转换等。如果没有对上述类似的情形做出明确规定, 那么在处理类型转换问题时就会出现一些问题,幸运的是PHP为我们提供了相 关的转换规定。1)、其他数据类型转换为整型的规则其他数据类型转换为整型原类型目标类型转换规则浮点型整犁向下取整,即不会四舍五入而是直接去掉浮点型数据小数点后边的部分,只保留整数部分布尔型整型TRUE转换成整型数字u1n , false转换成整型数字“0”字符串(1) 字符串为纯整型数字,转换成相应的整型数字(2) 字符串为带小数点的数字,转换时去除小数点后面的 部分,保留整数部分(3) 字符串以整型数字开头,转换时去除整型数字后面的 部分,然后按照规则1进行处理(4) 字符串以带小数点的数字开头,转换时去除小数点后 面的部分,然后按规则2进行处理(5) 字符串内容以非数字开头,直接转换为0将其他数据类型转换为整型的示例代码如下所示。?php$a = M123;$b = n123sunyangi,;$c = M2.32w;$d = M2.32abc;$e = sunyang123;$f = TRUE;$g = FALSE;$h = 3.1415926; echo (lnt)$a.M;echo (int)$b.;echo (int)$c.H;echo (int)$d.;echo (int)$e.;echo (lnt)$f.M;echo (int)$g.M;echo (int)$h.;?在浏览器中输出为:123123220103浮点型数据向整型数据转换的时候,需要注意以下两种情况。如果几个浮点型数据相乘,应将大于1的数放在最前面,并将整个式了括起来, 不然的话容易出错。以下示例代码中,第一及第四个输岀正确,其他三个输出都 出现了错误。?phpecho (lnt)(46.86*0.26*0.74).MM;/46.86*0.26*0.74=9.015864echo (int)46.86*0.26*0.74.H,;Z/其结果为46*0.26*0.74=8.8504echo (int)0.26*0.74*46.86,wM;echo (int)(100*0.1*0.7).M;echo (int)(0.1*0.7*100);?在浏览器中输出为:8.8504076如果浮点型数据相除时,也应将整外除式括起来,以免岀现错误。以下示例代码中,第一及第三个输岀正确,其他两个输岀都出现了错误。?phpecho (int)(7.8/3.2).,;/7.8/3.2=2.4375echo (int)7.8/3.2.*H;/M结果为7/3.2=2.1875echo (int)(3.2/7.8).,;/3.2/7.8=0.410256410256echo (int)3.2/7.8;/其结果为3/7.8=0.384615384615?在浏览器中输岀为:22.187500.3846153846152)、其他数据类型转换为浮点型的规则其他数据类型转换为浮点型原类型目标类型转换规则整型浮点型将整型数据直接转换为浮点型,数值保持不变布尔型浮点型TRUE转换成浮点型数字u1n , false转换成浮点型数字“0”字符串浮点型(1) 字符串为整型数字,直接转换成相应的浮点型数字(2) 字符串以数字开头,转换时去除数字后面的部分, 然后按照规则1进行处理(3) 字符串以带小数点的数字开头,转换时直接去除数 字后面的部分,只保留数字部分(4)字符串以非数字内容开头,直接转换为0将其他数据类型转换为浮点型的示例代码如下。?php$a =:M123;$b =$c =123sunyang;:”2.32”;$d :s ”232abc”;$e = vsunyang123; $f = TRUE;$g = FALSE;$h = 1234;echo (float)$a.n; echo (float)$b.*; echo (float)$c.M; echo (float)$d.; echo (float)$e.; echo (float)$f.M; echo (float)$g.H; echo (float)$h.;在浏览器中输出为:1231232.322.3201012343)、其他数据类型转换为布尔型的规则其他数据类型转换为布尔型原类型目标类型转换规则整犁布尔型0转换为false,非零的其他整型数字转换为true浮点型布尔型0.0转换为false,非零的其他浮点型数字转换为true字符串布尔型空字符串或字符串内容为零转换为false,其他字符串转 换为trueNULL布尔型直接转换为false数组布尔型空数组转换为false,非空数组转换为true将其他数据类型转换为布尔型的示例代码如下所示。?php$a = 0;$b = 123;$c = 0.0;$d = 3.14;$e =$f = u0;$g = TRUE”;$h = array();$i = array(tfa,Mbtf,wcff);$j = NULL;echo var_dump(boolean)$a).,H; echo va_dump(boolean)$b)vbr; echo var_dump(boolean)$c).vbr”; echo var_dump(boolean)$d).; echo va_dump(boolean)$e):vbr; echo var_dump(boolean)$f).vbr”; echo var_dump(boolean)$g).l,M; echo var_dump(boolean)$h).vbr; echo var_dump(boolean)$i).,f,f; echo var_dump(boolean)$j);?在浏览器中输出为:bool(false)bool(true)bool(false)bool(true)bool(false)bool(false)bool(true)bool(false)bool(true)bool(false)4)、其他数据类型转换为字符串的规则其他数据类型转换为字符串原类型目标类型转换规则字符串转换时直接在整型两边加上双引号作为转换后的结果浮点型字符串转换时直接在浮点型两边加上双引号作为转换后的结果布尔型字符串true转换为字符串“仁,false转换为字符串“0”数组字符串直接转换为字符串“Array”对象字符串直接转换为字符串“Object”NULL字符串直接转换为空字符串将其他数据类型转换为字符串的示例代码如下。?php$a = 123;$b = 3.14;$c = TRUE;$d = FALSE;$e = array(abc); $f=NULL; echo (string)$a.,; echo (string)$b.; echo (string)$c.; echo (string)$d.f; echo (string)$e.; echo (string)$f;? 在浏览器中输出为: 1233.141Array5)、其他数据类型转换为数组的规则其他数据类型转换为数组原类型目标类型转换规则整型数组将这几个数据类型强制转换为数组时,浮点型得到的数组只包含一个数据元素,布尔型该数据就是未转换前的数据,字符串并且该数据的数据类型也与未转换前相同对象数组转换时将对象的成员变量的名称作为各数组元素的key, 而转换后数组每个key的value都为空(1)如果成员变量为私有的(private),则转换后key的名称为“类名+成员变量名”(2)如果成员变量为公有的(public),则转换后key的名称为“成员变量名”(3)如果成员变量为受保护的(protected), 则转换后key的名称为+成员变量名”NULL数组直接转换为一个空数组将其他数据类型转换为数组的示例代码如下。;echo var_dump(array)$b).;echo var_dump(array)$c)”vbr;echo var_dump(array)$d).*bP*;echo var_dump(array)$e).*;echo var_dump(array)$f);?在浏览器中输岀为:array(1)0=int(123)array(1) 0= float(3.14)array(1) 0= bool(true)array(1)0= string(5) Helloarray(3) nAprivaten= NULL Mpublic= NULL protected” NULLarray(O) 6)、其他数据类型转换为对象的规则其他数据类型转换为对象原类型目标类型转换规则幣型浮点型 布尔型 字符串对象将其他类型变量转换为对象时,将会新建一个名为“scalar”的属性, 并将原变量的值存储在这个属性中数组对象将数组转换为对象时,数组的key作为对 象成员变量的名称,对应各个key的value 作为对象成员变量保存的值NULL对象直接转换为一个空对象将其他数据类型转换为对象的示例代码如下。aaa,Hb=bbb,*cH=ccc);$f=NULL;echo var_dump(object)$a).H;echo var_dump(object)$b).M;echo var_dump(object)$c).;echo V3_dump(object)$d)vbi;echo var_dump(object)$e)”vbr; echo var_dump(object)$f);?在浏览器中输岀为:object(stdClass)#1 (1) nscalar= int(123)33object(stdClass)#1 (1) nscalarn= float(3.14)object(stdClass)#1 (1) nscalar= bool (true)object(stdClass)#1 (1) nscalarH= string(5) Helloobject(stdClass)#1 (3) naH= string(3) aaa*1 HbH= string(3) HbbbH cM= string(3) cccobject(stdClass)#1 (0) 六、变量的常用函数1v变转换函数在PHP强制转换中,除了上述方法外,还可应用函数进行转换,常用的函数有 以下几种。1) % settype()函数settype()函数将变量设置为指定类型,当某个变量用settype()函数设定后,该变 量的类型就发生改变,其语法如下:bool settype (mixed $var, string $type)将变量var的类型设置成type。type的可能值为:“boolean”(或为“bool”), “integer”(或为 uintn ), “float”,“string”,“array”,“object”,“null”。如果 成功则返回TRUE,失败则返回FALSEo使用settype()函数的示例代码如下。?php$a = ”56kg”;$b = true;settype($a,floar).M;settype($b,”sting”)”vbr”;echo $a.*;echo $b;?在浏览器中输出为:5.6可以看出,原来为字符串的$8经settype设置后,转换为浮点数“5.6”。原来为 布尔值的$匕经settype设置后,true转换为字符串“T。2) 、intval()函数、floatval()函数、strval()函数这三个函数是将原变量通过转换后得到新类型的新变量,原变量的类型和值都不 变,括号中放入原变量。使用intval()函数、floatval()函数、strval()函数的示例代码如下。?php$a = ”56kg”;$b = 2001;$c = intval($a);$d = floatval($a);$e = strval($b);echo $a.*;echo $bvbr;echo $c.;echo $d.;echo $e;?在浏览器中输岀为:5.6kg200155.62001可以看出,原变量a, b并没有改变,变量c为整数5,变量d为浮点数5.6, 变量e为字符串2001,而原变量b为整数2001 o2、变检查函数1)、isset()函数isset()函数用于检查某个变量是否存在,如果存在则返回TRUE,否则返回FALSEo使用isset()函数的示例代码如下。?php$a = M2001 年“;$c = 3.14;echo isset($a).;echo isset($b).;echo isset($c);?在浏览器中输出为:11因$玄,$c真实存在,它返回布尔值TRUE,在浏览器是显示为X”,而$并不 存在,它返回布尔值FALSE,在浏览器是显示为空。1)v empty ()函数isset()函数用于检查某个变量的值是否为空(m 0、”0”、NULL、FALSE、array()、 var $var以及没有任何属性的对象都将被认为是空),如果为空则返回TRUE, 否则返回FALSEo使用empty ()函数的示例代码如下。?php$b = 3.14;$c = 0;echo empty($a).w;echo empty($b)”vbr;echo empty($c);?在浏览器中输出为:1因$玄,$c为空,它返回布尔值TRUE,在浏览器是显示为u1n,而$(3并不为空, 它返回布尔值FALSE,在浏览器是显示为空。3、变判断函数PHP中有一些函数可以判断变量的类型,下面将一些常用的变量判断函数总结 如下。判断变量类型的函数函数名作用判断结果isnt() isn teger()检测变量是否是整数若变量为整数类型则返回true, 否则返回falseis_float() is_double()检测变量是否是浮点型若变量为浮点型则返回true,否 则返回falseis_bool()检测变量是否是布尔型若变量为布尔型则返回true,否 则返回falseis_string()检测变量是否是字符串若变量为字符串则返回true,否 则返回falseis_array ()检测变量是否是数组若变量为数组则返回true,否则 返回falseis_object()检测变量是否是一个对象若变量为对象则返回true,否则 返回falseis_resource()检测变量是否为资源类型若变量为资源类型则返回true, 否则返回falseis_null()检测变量是否为NULL若变量为NULL则返回true,否 则返回false使用判断变量类型函数的示例代码如下。?php”8”;$b = 3.14;$c = 9;$d = array(2,4,6);echo is_string($a).;echo is_float($b).*;echo is_ strinq ($c).;echo is_array($d);?在浏览器中输岀为:1114、变量获取函数1)、gettype()函数本函数用来取得变量的类型。返回的类型字符串可能为下列字符串其中之一: boolean、integer、doublex string、arrayx object、resourcex NULL、unknown type。使用gettype ()函数的示例代码如下。?php$a = “大家好! ”;$b = 3.14;$c = 9;$d = array(2,4,6);echo gettype($a)/bP*;echo gettype($b).;echo gettype($c).;echo gettype($d);?在浏览器中输出为:stringdoublein tegerarray我们一般不要使用gettype()来测试某种类型,因为其返回的字符串在未来的版 本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。使 用is_*函数代替。2) 、var_dump()函数var_dump()函数打印变量的相关信息,此函数显示关于一个或多个表达式的结 构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。 使用var_dump()函数的示例代码如下。;echo var_dump($b).;echo var_dump($c).;echo var_dump($d);?在浏览器中输岀为:string”大家好!”float(3.14)int(9)array(3) 0= int(2) 1= int(4) 2= int(6)3) 、var_export()函数var_expor
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!