类的声明和语法

1.达标和检测

学习PHP的面向对象,你需要具备PHP面向过程的相关基础,如不会,请先学习PHP基础部分.

面向对象一种编程思想,已经几十年了,而PHP这门语言到4.0版本的时候才有了面向对象,所以对于没有任何计算机语言的童鞋来讲,可能瞬间掌握,难度比较大,需要体会和实践,慢慢领悟,为了防止陷入思想的无底洞,先不要管为什么这么写,前期我们需要做的,就是熟悉并熟练操作PHP面向对象的基本语法和用法,随着代码量的增多,理解自然会深化,前期一定要做到如下几点:

**1. 类声明语法 试声明student类,有score属性和study方法

  1. 权限封装 知道public、 protected、 private各自的可见范围
  2. 继承 写A类,再写B类继承自A类,且要重写A类中的某个方法
  3. 静态属性与静态方法, 知道static静态方法需要用类名::方法名()调用
  4. 魔术方法 了解常用魔术方法分别在什么时间被调用
  5. 写一个抽象类,并用2个子类分别继承实现 分析这2个子类有什么共同特点?
  6. 写一个接口,并用2个类分别继承实现 分析这2个类有什么共同点?**

能做出这7题,面向对象就能通过并入门了.

2.第一个类

原来我们在学PHP基础的时候,函数是这样写的.

//函数的声明
function fly(){
    echo "爱需要理由吗?";
}

//函数的调用
fly();

如何改成类?

class 类名{

}
//class是固定写法,后面加类名(类名使用大驼峰命名法),紧跟着直接写大括号,然后把函数直接复制进去就偶了.
class Ai{
    function fly(){
        echo "爱一个人需要理由吗?";
    }
}

但是我们怎么样调用呢?如果你直接用函数调用的方法( fly(); )去调用,会直接报错.说找不到函数

说明:类是需要先new后,再调用的,也叫实例化.想一下,什么叫实例化?但从字面意思理解,实例就是现实的例子.翻译成成中文就是,现实的例子化.

也就是说,我想调用fly()这个类中的"函数",需要new Ai();

翻译的通俗像人话一点:就是新建一个现实的例子.

这个时候它会有一个返回值,这个返回值就是大名鼎鼎的"对象".

完整代码如下:

class Ai{
    function fly(){
        echo "爱一个人需要理由吗?";
    }
}

//实例化一个Ai类,返回值是一个对象,储存在$aiai变量里
$ai = new Ai();

3.类的属性和方法

更加通俗一点讲什么是类?这就需要大家去思考现实的东西了.比如说,我们人类,也是一大类,猪类,狗类,自行车类....发现这些都是一大类,并且有共同的特征,有共同的一些东西.

比如:我们人类,你有没有姓名,年龄,性别,身高,体重等等?这些都是我们人类生下来就固有的属性,这在面向对象的思想中叫类的属性.

比如,一个正常人,会不会哭,笑,跑,走,生气这些动作?这在面向对象思想中叫类的方法.

类:说白了就是一整个大类,跟现实中的类一样,通过属性(php面向过程中的变量/名词)和方法(php面向过程中的函数/动作),模拟人或者物的共同特点.

//这是php面向过程的变量声明
$name = '老王';

class{
    function fly(){
        echo '爱一个人需要理由吗?';
    }
}

//实例化一个Ai类,返回值是一个对象,储存在$aiai变量里
$ai = new Ai();

放在里面就成了属性

class{
    //类的属性(也可以叫变量)
    $name = '老王';

    //类的方法(也可以叫函数)
    function fly(){
        echo '爱一个人需要理由吗?';
    }
}

//实例化一个Ai类,返回值是一个对象,储存在$aiai变量里
$ai = new Ai();

怎么样调用?

class{
    $name = '老王';

    function fly(){
        echo '爱一个人需要理由吗?';
    }
}

//实例化一个Ai类,返回值是一个对象,储存在$aiai变量里
$ai = new Ai();
$ai->name;
$ai->fly();

发现还是报错,是因为类有权限控制,需要写public,现在可能还不理解权限控制.我们后期的教程中会涉及.先照写就好

class{
    public $name = '老王';

    function fly(){
        echo '爱一个人需要理由吗?';
    }
}

//实例化一个Ai类,返回值是一个对象,储存在$aiai变量里
$ai = new Ai();
$ai->name;
$ai->fly();

说明:php5以后,方法默认不用加public也可以调用和执行,因为默认就是public,但之前的版本必须要加public才可以,要不会报语法错误

4.类的语法

我们看一下类的语法注意点

//类名,不区分大小写 习惯上市大驼峰
class Stu{
    //属性名 调用时不加$
    public $sn = '00001';
    public $name = 'lisi';
    //方法名
    function ks(){
    echo '我叫lisi,我来学PHP';
    }
} 
//类名,不区分大写小,但是我们的编程过程中,要人为的区分
$stu = new stu();

echo $stu->sn,'<br />'; //调用属性.注意:此处一定不能加$符号
$stu->ks();//调用方法

5.类中属性不能是表达式?

php5.6之前,类名只能是直接传值或者常量,而不能是表达式的结果
函数调用,运算等等

PHP5.6以后允许使用包含数组,字符串字面值和常量的标量表达式(数学运算,比较运算等)

高中数学知识:标量和矢量.....(回忆:标量有大小,无方向,标量无方向)

class Stu{
      //public $num = rand(10,100);//报错
      //public $num = 1+2; //没问题,5.6之前不行
      //public $num = array('a','b'=>array('1'));
      public $num = 1||0;
} 
$stu = new Stu();
echo $stu->num;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容