实例化php类时传参的方法分析


Posted in PHP onJune 05, 2020

本文实例讲述了实例化php类时传参的方法。分享给大家供大家参考,具体如下:

当我们实例化一个php类的时候,要怎么传递参数呢?这取决于该类的构造方法。

例:

person.class.php

<?php
    class person{
        var $name;
        var $color;
        var $sex;
        var $age;
        function __construct($name,$age='',$sex='boy'){
            $this->name = $name;
            $this->age = $age;
            $this->sex = $sex;
            $this->color = 'yello';
        }
        function eat(){
            echo $this->name.'要吃饭';
        }
        function xinxi(){
            echo $this->name.' is '.$this->sex.' and age is '.$this->age.' fuse is '.$this->color;
        }
        function zuoyong(){
          //类似于这样的内部调用,相当于把eat()的代码引入到zuoyong()里面,而不是跳转到eat()里面继续执行
            //如果是http://localhost/zuoyong?food=xigua这样的url来调用zuoyong()
            //那么eat()中可直接通过$_GET['food']获取url参数,因为全局变量可在函数内部使用
            $this->eat();
        }
    }
?>

son.php

<?php
    include('person.class.php');
    $son = new person('cuihua',25,'girl');//此处的参数传递要和类的构造方法里面的参数顺序对应
    //$son->xinxi();//cuihua is girl and age is 25 fuse is yello
    $son->name = '田妞';
    $son->eat();//田妞要吃饭
?>

注:php类的属性($name、$age等)可以在该类的全局范围内使用,可以把类的属性视为“该类的”全局变量。但是当外部程序重新调用这个类中的方法时,该类会重新被实例化,也就是说要再次执行构造方法,那么上一次给$name等属性赋的值就会被清空,所以$name等属性的值不会像常量或是session中的值那样一直保持下去。

son2.php

<?php
    include('person.class.php');
    $son = new person('cuihua',25,'girl');
    $son2 = $son;
    $son2->name = '田妞';
    $son->eat();//田妞要吃饭
?>

当我把$son对象赋予$sin2之后,改变了$son2的name参数,此时发现$son的name参数也响应的跟着改变,由此可见:在php5中,把对象赋值给变量,是按引用传递对象,而不是进行值传递,此时并不会创建$son的副本。传递对象到函数,或从方法返回对象,是引用传递还是值传递,待验证。

可以通过var_dump()打印对象,不过只能打印对象的属性,它的方法不能打印出来,要想获取对象的方法列表,可以用get_class_methods函数。

<?php
$son = new person('cuihua',25,'girl');
var_dump($son);
/*
object(person)[1]
 public 'name' => string 'cuihua' (length=6)
 public 'color' => string 'yello' (length=5)
 public 'sex' => string 'girl' (length=4)
 public 'age' => int 25
*/
 
$mon = get_class_methods($son);
var_dump($mon);
/*
array (size=4)
 0 => string '__construct' (length=11)
 1 => string 'eat' (length=3)
 2 => string 'xinxi' (length=5)
 3 => string 'zuoyong' (length=7)
*/
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP小程序自动提交到自助友情连接
Nov 24 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
PHP浮点比较大小的方法
Feb 14 PHP
CI框架集成Smarty的方法分析
May 17 PHP
php微信高级接口群发 多客服
Jun 23 PHP
微信支付开发发货通知实例
Jul 12 PHP
php使用crypt()函数进行加密
Jun 08 PHP
Laravel下生成验证码的类
Nov 15 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 #PHP
PHP预定义接口――Iterator用法示例
Jun 05 #PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 #PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 #PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 #PHP
如何在PHP中生成随机数
Jun 04 #PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 #PHP
You might like
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
JS实现音乐导航特效
2020/01/06 Javascript
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
初中三好学生事迹材料
2014/01/13 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
努力工作保证书
2015/02/28 职场文书
刑事案件上诉状
2015/05/23 职场文书
小平小道观后感
2015/06/09 职场文书
投诉信回复范文
2015/07/03 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis