/* 类的声明
* 1.你要开发的是什么,确定写什么类
* 2.类中的成员一定要属于这个类
* [修饰类的关键字] class 类名{
* 成员属性:
* 成员方法:
* }
* 3.在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public
* 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php
* 类名的写法:
* 变量:aaaBbbCcc
* 函数:aaaBbbCcc
* 常量:AAABBBCCC
* 类名:AaaBbbCcc
* 4.类中的成员属性,如果创建多个对象时,每个对象有不同的属性值时,不要直接给初值,在创建好对象之后再给值
*
*
* 通过类来实例化对象
* 1.使用的是new新建一个对象,加上类名,就是创建哪个类的对象
* $对象引用=new 类名;
* 2.只要有一个new 关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间
*
* 只有对象才在内存有存储空间
*
* 对象的作用
*
* 对象在内存中的分配
*
* 对象的使用
* 对象中的成员必须通过对象的引用来访问
* 对象->成员
*
* 对象->成员属性
* 对象->成员方法
*
*
*
*/
---------------------------------------------------
class Something {
// 在OOP类中,通常第一个字符为大写
var $x;
function setX($v) {
// 方法开始为小写单词,然后使用大写字母来分隔单词,例如getValueOfArea()
$this->x=$v;
}
function getX() {
return $this->x;
}
}
?>---------------------------------------------------
当然你可以按自已的喜好进行定义,但最好保持一种标准,这样会更有效。
数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的。一个数据成员可
以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象。
方法在类中被定义成函数形式,在方法中访问类成员变量时,你应该使用$this->name,否则对一个方
法来说,它只能是局部变量。
使用new操作符来创建一个对象:
$obj=new Something;
然后你可以使用成员函数通过:
$obj->setX(5);
$see=$obj->getX();
在这个例子中,setX成员函数将5赋值给对象的成员变量x(不是类的),然后getX返回它的值5。
你可以象:$obj->x=6那样通过类引用方式来存取数据成员,这不是一个很好的OOP习惯。我强烈建议通
过方法来存取成员变量。如果你把成员变量看成是不可处理的,并且只通过对象句柄来使用方法,你将是一
个好的OOP程序员。不幸的是,PHP不支持声明私有成员变量,所以不良代码在PHP中也是允许的。
继承在PHP中很容易实现,只要使用extend关键字。
-----------------------------------------------------
class Another extends Something {
var $y;
function setY($v) {
$this->y=$v;
}
function getY() {
return $this->y;
}
}?>---------------------------------------------------
//类的声明(电话类)
class Phone{
//声明属性
var $pinPai;
var $color;
var $batteryCapacity;
var $screenSize;//成员方法
function call(){
}function message(){
}
function playMusic(){
}
function photo(){
}
}//类的实例化
class Something {
var $x;function Something($y) {
$this->x=$y;
}function setX($v) {
$this->x=$v;
}function getX() {
return $this->x;
}
}?>---------------------------------------------------
所以你可以创建一个对象,通过:
$obj=new Something(6);
构造函数会自动地把6赋值给数据变量x。构造函数和方法都是普通的PHP函数,所以你可以使用缺省参数。
function Something($x="3",$y="5")
接着:
$obj=new Something(); // x=3 and y=5
$obj=new Something(8); // x=8 and y=5
$obj=new Something(8,9); // x=8 and y=9
缺省参数使用C++的方式,所以你不能忽略Y的值,而给X一个缺省参数,参数是从左到右赋值的,如果
传入的参数少于要求的参数时,其作的将使用缺省参数。
当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基
类的构造函数,你必须要在派生类的构造函数中显示调用。可以这样做是因为在派生类中所有父类的方法都
是可用的。
-----------------------------------------------------
function Another() {
$this->y=5;
$this->Something();
//显示调用基类构造函数
}?>---------------------------------------------------
class Person{
var $name;
var $age;
var $sex;function say(){
}
function eat(){
}
function run(){
}
}
//实例化
$p1=new Person;
$p2=new Person;
$p3=new Person;
$obj=new Classfoo();
$str=serialize($obj);//保存$str到磁盘上
//几个月以后
//从磁盘中装入str$obj2=unserialize($str)
?>---------------------------------------------------
你恢复了成员数据,但是不包括方法(根据文档所说)。这导致了只能通过类似于使用$obj2->x来存取
成员变量(你没有别的方法!)的唯一办法,所以不要在家里试它。//访问对象的成员
$p1->name="zhangsan";
echo $p1->name;
?>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)