PHP 如何定义类、成员属性及其操作与魔术方法

PHP 类的定义与属性

一、类的定义
类的关键字定义使用 class :
例:
class test{

}

二、类的属性与方法

class test{

$name = ‘LH‘ ; //成员属性........

//成员方法........
public function t1(){

}

}
三、定义一个不能继承的类

final class test{

}
//final关键字只能修饰类和方法、不能用来修饰成员属性!

四、类、成员属性及方法的声明

1、public //公用的 表示全局的,类内部外部子类都可以访问
2、protected //受保护的 只有本类或子类或父类中可以访问
3、private //私有的 只有类内部可以调用
4、Var: //php 5 版本中会认为这个成员属性为public类型的属性
5、Static: //定义静态的属性 使用方法 类中使用self::成员属性名

五、魔术方法

注:魔术方法必须被定义为公共的,所有其他魔术方法都必须如此
1、__construct() 构造方法
2、__destruct() 析构方法
3、__clone() 克隆
4、__toString() 方法在将一个对象转化成字符串时自动调用,比如使用echo打印对象时
5、__sleep() 串行化的时候用
6、__wakeup 反串行化的时候调用
7、 __set_state() 当调用var_export()时,这个静态 方法会被调用(自PHP 5.1.0起有效)
8、__invoke (PHP 5.3.0以上版本有效) 当尝试以调用函数的方式调用一个对象时,__invoke 方法会被自动调用。
9、__callStatic (PHP 5.3.0以上版本有效) 是为了处理静态方法调用
10、__get() 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名。
11、__set() 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值。 
12、__isset() 
13、__call ($method, $arg_array )当调用一个未定义的方法是调用此方法
14、__autoload() 自动加载魔术方法

?>

时间: 2024-10-27 10:02:12

PHP 如何定义类、成员属性及其操作与魔术方法的相关文章

PHP如何定义类及其成员属性与操作

1.类的定义: 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ //成员属性 $name     =  ''; //操    作 protected function getActionName() { return $this->name; } } 3.定义一个不能被继承的类,使用final关键字 Final class Person{ 成员属性........ 操    作........ } 4.

使用prototype 对象定义类成员

使用prototype 对象定义类成员上一节介绍了类的实现机制以及构造函数的实现,现在介绍另一种为类添加成员的机制:prototype 对象.当new 一个function 时,该对象的成员将自动赋给所创建的对象,例如:<script language="JavaScript" type="text/javascript"><!--//定义一个只有一个属性prop的类function class1(){this.prop=1;}//使用函数的pro

利用runtime实现延展动态改变模型类中属性的set,get方法

昨天大概的阐述了一下关于构架控制容器的概念,但是如果要丰满这个想法还有很多问题,比如如果我想对一些controller进行管理就势必涉及到controller的加载以及缓存,而想做这些的前提就是构建一个controller表.对表中设定的字符串管理,从而管理对应的controller.传统创建表的方法有很多,最为常用的就是plist文件,但是对于iOS开发的程序员来说,如果这个plist写死,在管理的时候就会比较死板,要知道oc是一门灵活的,动态的语言.如果我们使用NSUserDefaults,

Javascript定义类(class)的三种方法

注:本文转自阮一峰,觉得此篇文章对我对大家有帮助,因此转过来. 将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言.如果你忘了填写用户名,它就跳出一个警告. 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途.程序员用它完成越来越庞大的项目.Javascript代码的复杂度也直线上升.单个网页包含10000行Javascript代码,早就司空见惯.2010年,一个工程师透露,Gmail的代码长度是443000行! 编写和维护如此复杂的代码,必须使用模块化策略.目

C#定义类成员

1.成员定义 public--成员可以由任何代码访问. private--成员只能由类中的代码访问(如果没有使用任何关键字,就默认使用这个关键字). internal--成员只能由定义它的程序集(项目)内部的代码访问. protected--成员只能由类或派生类中的代码访问. 后两个关键字可以合并使用,所以也有protected internal成员.他们只能有项目(更确切地讲,是程序集)中派生类的代码来访问. 也可以使用关键字 static 来声明字段.方法和属性,这表示它们是类的静态成员,而

OC基础--结构体 枚举做类成员属性

结构体  枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期  毕业日期  --  结构体 代码示例: 声明文件 Student.h: #import <Foundation/Foundation.h> typedef struct { int year; int month; int day; } Date; typedef enum { kGenderGirl = 0, kGenderBoy = 1, kGenderChunGe = 2 } Gender; @inter

13.C# 定义类成员

1.定义字段 class MyClass { public int MyInt; } 字段可以用readonly修饰,表示该字段只能在构造函数中赋值,还可以用static表示该字段是静态字段 class MyClass { public int MyInt=17;//注意公共字段使用PascalCasing标准命名,即每个单词首字母大写 private int age=18; //私有变量用camelCasing标准命名,首字母小写,之后每个单词首字母大写 public int StaInt =

107-PHP类成员属性赋值

<?php class mao{ //定义猫类 public $age; //定义多个成员属性 protected $weight; private $color; } $mao1=new mao(); //实例化一个对象 echo '输出对象$mao1的age属性:'.$mao1->age; $mao1->age=3; //给对象的age属性赋值 echo '<br />再次输出$mao1的age属性:'.$mao1->age; ?> 原文地址:https://

106-PHP查看类成员属性

<?php class mao{ //定义猫类 public $age; //定义多个成员属性 protected $weight; private $color; } $mao1=new mao(); //实例化一个对象 echo '输出该对象的成员:<br />'; var_dump($mao1); //输出对象的成员 ?> 原文地址:https://www.cnblogs.com/tianpan2019/p/11007405.html