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合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
php读取mysql的简单实例
Jan 15 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
php无限分类使用concat如何实现
Nov 05 PHP
php通过header发送自定义数据方法
Jan 18 PHP
深入学习微信网址链接解封的防封原理visit_type
Aug 15 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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 获取目录下的图片并随机显示的代码
2009/12/28 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
PHP中使用curl入门教程
2015/07/02 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
python 2.7.14安装图文教程
2018/04/08 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Python中return self的用法详解
2018/07/27 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
高中打架检讨书
2014/02/13 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2014年实验室工作总结
2014/12/03 职场文书
布达拉宫导游词
2015/02/02 职场文书
小学安全工作总结2015
2015/05/18 职场文书
学生病假条怎么写
2015/08/17 职场文书