为什么cry是用的祖父的方法 而age和leg却是用的自己的属性?这是为什么?而我输出man::t1()却全是用的祖父的方法和属性
<?php
class Animal{
const age=1;
public static $leg=4;
public static function cry(){
echo "1111";
}
public static function t1(){
self::cry();
echo self::age;
echo self::$leg;
}
public static function t2(){
self::cry();
echo static::age;
echo static::$leg;
}
}
class human extends Animal{
const age=30;
public static $leg=2;
public static function cry(){
echo "5555";
}
}
class man extends human{
const age=16;
public static $leg=1;
public static function cry(){
echo "aaaa";
}
}
man::t2();
?>为什么cry是用的祖父的方法 而age和leg却是用的自己的属性?这是为什么?而我输出man::t1()却全是用的祖父的方法和属性
<?php
class Animal{
const age=1;
public static $leg=4;
public static function cry(){
echo "1111";
}
public static function t1(){
self::cry();
echo self::age;
echo self::$leg;
}
public static function t2(){
self::cry();
echo static::age;
echo static::$leg;
}
}
class human extends Animal{
const age=30;
public static $leg=2;
public static function cry(){
echo "5555";
}
}
class man extends human{
const age=16;
public static $leg=1;
public static function cry(){
echo "aaaa";
}
}
man::t2();
?>
t1() 里面写的都是self当然都是调用祖父自己的。
t2() 里面self调用祖父自己的cry(),由于属性用了static声明(后静态绑定)。就调用到了man自己的属性。
这是一款适用于会员商店会员消费管理的实用软件,使用此系统:1、用户可以方便地记录地本会会员在“会员商店”的消费情况;并将消费明细打印出来。2、可随时随地了解查询某一会员在俱乐部消费商品货物的全部情况;3、可随时随地查询某一时期,某一会员消费某一商品或全部商品的情况明细和积点情况;4、可随时随地查询一定时期内,部分或全部商品的销售情况、并可对查询结果进行打印。
5
self...
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号