- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP面向对象程序设计类的定义与用法简单示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了PHP面向对象程序设计类的定义与用法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<?php
class
Person {
private
$name
;
private
$sex
;
private
$age
;
function
__construct(
$name
=
""
,
$sex
=
"男"
,
$age
= 22) {
$this
->name =
$name
;
$this
->sex =
$sex
;
$this
->age =
$age
;
}
// 直接为私有属性赋值时自动调用,可以屏蔽一些非法赋值
// 之前有版本可以设置方法为private function __set()
// The magic method __set() must have public visibility
// 因为5.35对魔术方法限制的严格了
public
function
__set(
$propertyName
,
$propertyValue
) {
if
(
$propertyName
==
"sex"
) {
if
(! (
$propertyValue
==
"男"
||
$propertyValue
==
"女"
)) {
return
;
}
if
(
$propertyValue
> 150 ||
$propertyValue
< 0) {
return
;
}
}
// 根据传入的成员属性名,赋上相应的值
$this
->
$propertyName
=
$propertyValue
;
}
// 用来获取私有属性
public
function
__get(
$propertyName
) {
if
(isset (
$this
->
$propertyName
)) {
return
(
$this
->
$propertyName
);
}
else
{
return
(NULL);
}
}
public
function
__isset(
$propertyName
) {
if
(
$propertyName
==
"name"
) {
return
false;
// 返回假,不允许在对象外部测定这个属性
}
return
isset (
$this
->
$propertyName
);
}
public
function
__unset(
$propertyName
) {
if
(
$propertyName
==
"name"
) {
return
;
//不允许删除name属性
}
unset(
$this
->
$propertyName
);
}
function
say() {
echo
$this
->name .
"在说话<br/>"
;
}
function
run() {
echo
"在走路·<br/>"
;
}
function
__destruct() {
echo
"goodbye"
.
$this
->name .
"<br/>"
;
}
}
$person1
=
new
Person ();
$person2
=
new
Person (
"2"
);
$person3
=
new
Person (
"3"
);
// 自动调用了__set()
$person1
->name =
"张三"
;
echo
$person1
->name;
echo
"<br/>"
;
echo
$person1
->say ();
// 自动调用了__get()
echo
$person1
->age;
echo
"<br/>"
;
var_dump ( isset (
$person1
->name ) );
echo
"<br/>"
;
unset(
$person1
->name);
echo
"unset------------>"
.
$person1
->name;
//name 没有被unset()
echo
"<br/>"
;
$person2
= null;
?>
|
结果:
1
2
3
4
5
6
7
8
|
张三
张三在说话
22
bool(false)
unset------------>张三
goodbye2
goodbye3
goodbye张三
|
希望本文所述对大家PHP程序设计有所帮助.
最后此篇关于PHP面向对象程序设计类的定义与用法简单示例的文章就讲到这里了,如果你想了解更多关于PHP面向对象程序设计类的定义与用法简单示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如何有效地设计一个C++模块化程序?如何学习? 最佳答案 对于初学者,您可能希望采取“暴力”过程: 1. 在一个文件中写一个简单的main函数。 2. 增加一些功能,先编译再测试。 3.重构(在谷歌中
前言 有人说现在记事类app这么多,市场这么卷,为什么还想做一个笔记类App? 一来,去年小孩刚出生,需要一个可以记录喂奶时间的app,发现市面上没有一款app能够在两步内简单记录一个时间,可能i
我正处于 Web 应用程序的设计阶段,该应用程序允许用户创建工作请求,并且工作人员可以针对这些请求投入时间。该应用程序还将为主管提供报告功能,以获取每日总计、报告,并说明花费的时间、“成本分配”。 我
前言:很多刚刚接触编程的人都不知道怎么下手编写程序,特别是学习了新的知识点,不知道有什么用,那么本文将以简单的存储结构及简单的运算,条件语句,分支语句,循环语句结合,带来一个双人对战版五子棋,这是一
我正在尝试通过 C++ 多线程解决网络流量问题。 给定一个网络(所有节点都由弧连接,每个弧连接2个且只有2个结束节点,一个是输入节点,另一个是输出节点,每个节点可以有多个输入弧和输出弧),每个节点需要
我有一个关于编程和文件的问题。 while(current!=NULL) { if(current->Id_Doctor!='\0') { current=current->next;
下面的‘C’语句执行什么操作? star = star ^ 0b00100100; (A) 切换变星的第 2 位和第 5 位。 (B) 清除变量星的第 2 位和第 5 位以外的所有位。 (C) 设置除
我写了下面的代码: #include int main() { int a, b; printf("Enter values of a and b\n"); scanf(" %d%d "
我正在将 C 代码编程到 PIC 板上。我的问题是如何让我的程序计算按下按钮(RB0)的时间。然后它会显示所花费的时间并将其显示在液晶显示屏上。以毫秒为单位计算。下面是到目前为止我的代码。 /
我是一名优秀的程序员,十分优秀!