分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

PHP 进阶之 类型转换

发布时间:2023-09-06 01:52责任编辑:苏小强关键词:PHP

引用官方的解释

PHP 在变量定义中不需要(或不支持)明确的类型定义;变量类型是根据使用该变量的上下文所决定的。也就是说,如果把一个 string 值赋给变量$var$var 就成了一个 string。如果又把一个integer 赋给 $var,那它就成了一个integer。

PHP 的自动类型转换的一个例子是乘法运算符“*”。如果任何一个操作数是float,则所有的操作数都被当成float,结果也是float。否则操作数会被解释为integer,结果也是integer。注意这并没有改变这些操作数本身的类型;改变的仅是这些操作数如何被求值以及表达式本身的类型。

<?php$foo = "1"; ?// $foo 是字符串 (ASCII 49)$foo *= 2; ??// $foo 现在是一个整数 (2)$foo = $foo * 1.3; ?// $foo 现在是一个浮点数 (2.6)$foo = 5 * "10 Little Piggies"; // $foo 是整数 (50)$foo = 5 * "10 Small Pigs"; ????// $foo 是整数 (50)?>

除此之外,我们可以通过显示转换(类型强转换)的办法将一个变量当作某种类型

PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。

<?php$foo = 10; ??// $foo is an integer$bar = (boolean) $foo; ??// $bar is a boolean?>

允许的强制转换有:

  • (int), (integer) - 转换为整形 integer
  • (bool), (boolean) - 转换为布尔类型 boolean
  • (float), (double), (real) - 转换为浮点型 float
  • (string) - 转换为字符串 string
  • (array) - 转换为数组 array
  • (object) - 转换为对象 object
  • (unset) - 转换为 NULL (PHP 5)
class test { ????public $var1 = 1; ????protected $var2 = 2; ????private $var3 = 3; ????static $var4 = 4; ????public function toArray(){ ???????????????return (array)$this; ???}} $t = new test; print_r($t->toArray()); 

* PHP不自带toArray函数,需要自己实现,对象强转数组后会将内部所有数值型属性都打印出来,方法和静态属性会被丢弃

上例输出:

Array ( [var1] => 1 [*var2] => 2 [testvar3] => 3 ) 

PHP 进阶之 类型转换

原文地址:https://www.cnblogs.com/xiaoliwang/p/8997261.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved