找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9949|回复: 3

[php] php子类调用父类属性

[复制链接]
发表于 2010-10-26 12:18:08 | 显示全部楼层 |阅读模式
<?php

abstract class Stu
{
        public $name;

        function __construct($name)       
                {
            $this->name = $name;
        }

        abstract function show();
}

class Son extends Stu
{
        function show()
        {
                return parent::$name;//这里为什么不可以
                return $this->name;//可以
                //return Stu::$name;//这里为什么不可以
        }
}

$ss = new Son("zxm");
echo $ss->show();
?>

我看到书上写子类可以调用父类的属性和方法,我试了用当子类用 parent::属性,或者 类名::属性访问,发现都不可以,只能用$this->属性 访问,提示[Access to undeclared static property: Stu::$name in...],总之question就是:我怎么在子类中访问父类的属性???????!!!!!!!!!!!希望大家赐教!
发表于 2010-10-26 13:11:42 | 显示全部楼层

  1. <?php

  2. abstract class Stu
  3. {
  4.        public $name;

  5.        function __construct($name)
  6.        {
  7.            $this->name = $name;
  8.        }

  9.         function name()
  10.         {
  11.             return $this->name;
  12.         }

  13.        abstract function show();
  14. }

  15. class Son extends Stu
  16. {
  17.        function show()
  18.        {
  19.               return parent::name();
  20.               //return $this->name;//可以
  21.               //return Stu::$name;//这里为什么不可以
  22.        }
  23. }

  24. $ss = new Son("zxm");
  25. echo $ss->show();
  26. ?>
复制代码


parent::$name 你的语法错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-15 00:06:42 | 显示全部楼层

回复 2# wuleying 的帖子

老大说清楚点撒 , 你说了等于没说!???

你直接告诉我 不能这么写不就行了嘛?? 搞得 我郁闷死了
回复 支持 反对

使用道具 举报

发表于 2010-11-18 09:29:51 | 显示全部楼层
parent::function
额楼主parent::调用的是父类的方法  不能调用属性
  1. <?php
  2. //test abs class

  3. abstract class absclass
  4. {
  5.         var $name = '';
  6.         var $things = '';
  7.         function __construct(){
  8.         $this->name = 'fname';
  9.         $this->things = 'some thing';
  10.         }

  11.         function pname(){
  12.                 echo $this->name;
  13.         }

  14.         function dothing(){
  15.                 echo $this->things;
  16.         }
  17. }

  18. class son extends absclass
  19. {
  20.         function test1(){
  21.                 return $this->name;
  22.         }

  23.         function test2(){
  24.                 parent::pname();
  25.                 echo ' to do ';
  26.                 parent::dothing();
  27.         }
  28. }

  29. $test = new son();
  30. $rs = $test->test1();
  31. echo $rs;
  32. echo '<br />';
  33. $test->test2();
  34. ?>
复制代码

result:
fname
fname to do some thingyes

[[i] 本帖最后由 Kurorozero 于 2010-11-18 10:50 编辑 ]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )

GMT+8, 2021-2-28 08:37 , Processed in 0.058773 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表