php 类名 属性6,php基础知识(类中属性和方法练习)--2018年9月6日14:01:15
实例
echo "
类的申明与实例化
";
class test1 {
public function hello(){
return "我是一个类";
}
}
$test= new test1();
echo $test->hello(),"
";
$test->hello1 = function (){
return "我是另外一个类";
};
echo call_user_func($test->hello1);
echo "
";
echo "
类常量与类的属性重载
";
class test2{
//使用const的关键字来创建类常量,使用大写来定义常量的名称
const TEST = "我是一个测试2";
//创建三个私有属性
private $name;
private $age;
private $salary;
public function __construct($name,$age,$salary)//使用构造方法对三个私有属性进行初始化
{
$this->name = $name;
$this->age = $age;
$this->salary = $salary;
}
//设置获取器使得属性重载可以访问私有的条件,还可以设置条件进行访问的限制
public function __get($name)
{
if ($name == 'salary'){
exit( "你无权查看");
}else{
return $this->$name;
}
}
//设置设置器使得属性修改访问私有条件的属性,
public function __set($name, $value)
{
if ($name == 'salary'){
exit( "你无权修改");
}else{
return $this->$name = $value;
}
}
//设定属性查询规则
public function __isset($name)
{
if ($name == 'salary'){
return false;
}
return isset($this->$name);
}
//设定属性销毁方法
public function __unset($name)
{
if ($name == 'salary' || $name == "name"){
return false;
}
unset($this->$name);
}
}
//使用类的名称加双冒号访问类中的常量
echo test2::TEST,"
";
$test2 = new test2('test','25','6000');
echo $test2->name,"
";
echo $test2->age,"
";
//$test2->salary = 5000;
$test2->name = "小王";
echo $test2->name,"
";
echo isset($test2->salary) ? "有
" : "没有
";
echo isset($test2->name) ? "有
" : "没有
";
unset($test2->name);
echo $test2->name,"
";
unset($test2->age);
echo $test2->age,"
";
echo "
";
echo "
类的继承与方法的重写
";
//创建一个父类
class test3 {
public $name;
protected $age;
const TEST_1 = "我是父类的常量";
public function __construct($name,$age)
{
$this->name =$name;
$this->age =$age;
}
}
//创建一个子类继承父类属性和方法
class test3_1 extends test3
{
private $salary;
public function __construct($name, $age,$salary)
{
parent::__construct($name, $age);//引用父类的构造方法进行重写
$this->salary = $salary;
}
public function __get($name)
{
return $this->$name;
}
public function __isset($name)
{
if ($name == "salary"){
return false;
}
return isset($this->$name);
}
}
$test3_1 = new test3_1("小明",20,5000);
echo test3_1::TEST_1;
echo $test3_1->name,"
";
echo $test3_1->age,"
";
echo $test3_1->salary,"
";
echo isset($test3_1->salary) ? "有
":"没有
";
echo isset($test3_1->name) ? "有
":"没有
";
echo "
";
echo "
类中静态成员的声明和访问
";
class test4{
//静态类的关键字是static,在3p后面紧跟着.
public static $name = "小红";
public static $age="28";
public static $salary="6000";
}
echo test4::$name,"
";
echo test4::$age,"
";
echo test4::$salary,"
";
运行实例 »
点击 "运行实例" 按钮查看在线实例
php 类名 属性6,php基础知识(类中属性和方法练习)--2018年9月6日14:01:15相关推荐
- php属性赋值吗,php – 设置类中属性的默认值
我需要编写一个类,用户可以根据需要设置自己的值.我需要为属性设置默认值. 我怎么能以正确的方式做到这一点.这是我需要实现的一个例子 class Test { protected $var1; prot ...
- 文件的属性 计算机知识,计算机基础知识文件的属性(二)
计算机基础知识文件的属性(二) 我们就继续往下讲."名称"后面是"大小",表示文件的信息量,也就是说它在硬盘上占用的空间.还记得我们说过硬盘的和软盘的大小吗? ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- Java_面向对象基础(类、对象、方法和构造函数)
Java的面向对象基础(类.对象.方法和构造函数) 面向对象的基本概念 面向对象的设计思想 什么是类 什么是对象 类的定义 设计面向对象的例子 步骤一:设计动物这个类 步骤二:创建具体的动物 步骤三: ...
- python隐藏部分代码_python隐藏类中属性的3种实现方法
方法一: 效果图一: 代码一: # 定义一个矩形的类 class Rectangle: # 定义初始化方法 def __init__(self,width,height): self.hidden_w ...
- python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...
python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...
- iptables的基础知识-iptables中的状态检测
2019独角兽企业重金招聘Python工程师标准>>> iptables的基础知识-iptables中的状态检测:iptabels被认为是Linux中实现包过滤功能的第四代应用程序. ...
- java的反射机制--关于类中属性的反射。
之前对于反射的理解只是认为,通过一个类的名字动态创建出一个类来. 其实,知道类中属性的名字也可以,动态的得到该属性. 比如 class A{ S = "abc": } 我们可以动态 ...
- 古琴入门基础知识【古琴打谱的方法一】——唐畅古琴
古琴的曲谱,从明初起,被保存下来的据近年中央民族音乐研究所收集和调查所得,谱集方面达一百四十四种之多,其中略去重复,共有三千三百六十五个不同的传谱,六百五十八个不同的传曲,数量真不算少. 然古人所制的 ...
最新文章
- 属性子集选择的基本启发方法_图网络基本属性
- Ajax Control Toolkit 32个服务器端控件
- AI:《A Simple Tool to Start Making Decisions with the Help of AI—借助人工智能开始决策的简单工具》翻译与解读
- leetcode第一刷_Construct Binary Tree from Inorder and Postorder Traversal
- c#后台如何导出excel到本地_C#后台导出Excel
- Mongo使用navicat解除14天限制
- 金山吹响讨伐灰鸽子的号角
- LeetCode 1634. 求两个多项式链表的和
- 线程之间通信 等待(wait)和通知(notify)
- c++ windows 光标操作_电脑操作常用快捷键
- 计算机装配调试员培训内容.doc,电子计算机(微机)装配调试员文档.doc
- Mac窗口小部件,原来还有这么多使用细节!
- 【优化算法】先导粘菌算法(LSMA)【含Matlab源码 1436期】
- 英语口语收集(十六)
- Java求两点的中点坐标_计算两点坐标距离与中点坐标
- 龙迅LT7911D Type-C/DP/eDP to MIPI DSI/CSI/LVDS 信号转换芯片
- 什么是 ARPU 为什么你应该关心 ARPU?
- 云计算学习路线教程大纲课堂笔记:构建企业级WIKI及工单系统
- n个台阶,每次都可以走一步,走两步,走三步,走到顶部一共有多少种可能
- Python课程作品设计——基于EXCEL的批量重命名工具