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 Mysql日期和时间函数集合
Nov 16 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
php Static关键字实用方法
Jun 04 PHP
关于svn冲突的解决方法
Jun 21 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
Laravel日志用法详解
Oct 09 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
PHP CURL使用详解
Mar 21 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实时显示输出
2008/10/02 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
javascript知识点收藏
2007/02/22 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
学习Python爬虫的几点建议
2020/08/05 Python
python不同版本的_new_不同点总结
2020/12/09 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
工商学院毕业生个人自我评价
2013/09/19 职场文书
促销活动总结
2014/04/28 职场文书
一体化教学实施方案
2014/05/10 职场文书
扬尘污染防治方案
2014/06/15 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
庆祝国庆节标语
2014/10/09 职场文书