PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例


Posted in PHP onJune 12, 2019

本文实例讲述了PHP面向对象程序设计内置标准类,普通数据类型转为对象类型。分享给大家供大家参考,具体如下:

内置标准类

PHP中,有很多“现成的类”,其中有一个被称为“内置标准类”。这个类“内部”可以认为什么也没有。

class stdclass{ }
<?php
$obj1 = new stdclass();
var_dump($obj1);
class A{}
$obj2 = new A();
var_dump($obj2);
?>

运行结果:

object(stdClass)[1]

object(A)[2]

可以看到和普通类没什么区别。

内置标准类的作用是,用于存储一些临时的简单数据,如:

$obj1->pp1 = 1;
$obj2->port = '3306';

也可以在类型转换时用于存储数据。

对象的类型转换

其他数据类型转换为对象类型,得到的结果是:内置标准类(stdclass)的一个对象。

语法形式为:

$obj = (object)其他类型数据;

数组转换为对象:数组的键名当作属性名,值为对象对应的值。

注意:数字下标的数据元素,转换为对象后的属性,无法通过对象语法获取,因此不推荐转换。

<?php
$config = array(
  'host' => "localhost",
  'port' => 3306,
  'user' => "root",
  'pass' => "123",
  'charset' => "utf8",
  'dbname' => "yeoman",
);
$obj1 = (object)$config;
var_dump($obj1);
echo "<br />单独取出user:" . $obj1->user;
?>

运行结果:

object(stdClass)[1]
  public 'host' => string 'localhost' (length=9)
  public 'port' => int 3306
  public 'user' => string 'root' (length=4)
  public 'pass' => string '123' (length=3)
  public 'charset' => string 'utf8' (length=4)
  public 'dbname' => string 'yeoman' (length=6)

单独取出user:root

但是数组中有下标元素,转为对象的话,无法通过对象语法获取。

<?php
$arr = array('pp1' => 1, 5 => 12);
$obj2 = (object)$arr;
var_dump($obj2);
echo "<br />单独取出pp1:" . $obj2->pp1;
//echo "<br />单独取出5:" . $obj2->5;//会报错!
?>

运行结果:

$arr = array('pp1' => 1, 5 => 12);
$obj2 = (object)$arr;
var_dump($obj2);
echo "<br />单独取出pp1:" . $obj2->pp1;
//echo "<br />单独取出5:" . $obj2->5;//会报错!
?>

null转换为对象:空对象

$obj = (object)null;

其他标量数据转换为对象:属性名为固定的”scalar“,值为该变量的值

<?php
$v1 = 1;
$v2 = 2.2;
$v3 = "abc";
$v4 = true;
$objv1 = (object)$v1;  //整型转为对象类型
$objv2 = (object)$v2;  //浮点型转为对象类型
$objv3 = (object)$v3;  //字符串型为对象类型
$objv4 = (object)$v4;  //布尔转为对象类型
var_dump($objv1); echo "<br />";
var_dump($objv2); echo "<br />";
var_dump($objv3); echo "<br />";
var_dump($objv4); echo "<br />";

运行结果为:

object(stdClass)[1]
  public 'scalar' => int 1

object(stdClass)[2]
  public 'scalar' => float 2.2

object(stdClass)[3]
  public 'scalar' => string 'abc' (length=3)

object(stdClass)[4]
  public 'scalar' => boolean true

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
PHP __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
PHP安全上传图片的方法
Mar 21 PHP
php给图片加文字水印
Jul 31 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
CI框架(CodeIgniter)操作redis的方法详解
Jan 25 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 #PHP
PHP面向对象类型约束用法分析
Jun 12 #PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
Jun 12 #PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 #PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 #PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 #PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 #PHP
You might like
小偷PHP+Html+缓存
2006/12/20 PHP
php验证码实现代码(3种)
2015/09/07 PHP
php多线程并发实现方法
2016/09/30 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python实现简单的TCP代理服务器
2014/10/08 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
关于赌博的检讨书
2014/01/24 职场文书
小学生元旦广播稿
2014/02/21 职场文书
协议书与合同的区别
2014/04/18 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
行政答辩状范文
2015/05/21 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL