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 文件上传代码(限制jpg文件)
Jan 05 PHP
sql注入与转义的php函数代码
Jun 17 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php数组转成json格式的方法
Mar 09 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 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
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
python模仿网页版微信发送消息功能
2018/02/24 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Django中Middleware中的函数详解
2019/07/18 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
python如何代码集体右移
2020/07/20 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
公司门卫岗位职责范本
2014/07/08 职场文书
关于教师节的广播稿
2014/09/10 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
社区党支部承诺书
2015/04/29 职场文书
寒假致家长的一封信
2015/10/10 职场文书
大队委员竞选稿
2015/11/20 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
APP界面设计技巧和注意事项
2022/04/29 杂记