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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php之curl设置超时实例
Nov 03 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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 Session会话超时时间设置方法
2014/06/10 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python函数和模块的使用总结
2019/05/20 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python datetime中strptime用法详解
2019/08/29 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
排查MySQL生产环境索引没有效果
2022/04/11 MySQL