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&amp;java(一)
Oct 09 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
PHP解决中文乱码
Apr 28 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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实现链结人气统计
2006/10/09 PHP
深入解析php中的foreach函数
2013/08/31 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php定界符
2014/06/19 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
详解vue 组件
2020/06/11 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
pyhton列表转换为数组的实例
2018/04/04 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
电气工程师岗位职责
2015/02/12 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书