php学习笔记(一)————php类的概念

<?php
//类的概念
/*
 * 一个类包含自己的属性和函数
 *
 * 属性:属于类自己的常量和变量
 *
 * 方法:就是函数
 *
 * 类是一类事物的抽象
 */
//例子:
//车就是一种抽象
class Car{
    //车的基本属性:有轮子,有颜色,可以拉货(人)
    public $color = ‘red‘;//默认红色
    public $wheel_size = 4;//默认4个

    //方法:拉货默认
    public function pull_some_thing($something = ‘货‘){
        echo "我是一辆 $this->color 色的,有 $this->wheel_size 个轮子的车,我正在拉 $something ";
    }
}

$qiche  = new Car();
$qiche->color = ‘黑‘;
$qiche->wheel_size = 12;
$qiche->pull_some_thing(‘人‘);

echo ‘<hr/>‘;

//例子2:
class A
{
    function foo()
    {
        if (isset($this)) {
            echo ‘$this is defined (‘;
            echo get_class($this);//获得这个$this 代表的类
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        // Note: the next line will issue a warning if E_STRICT is enabled.
        A::foo();//在b类下调用A类的foo方法,获得的$this 是B类
    }
}

$a = new A();
$a->foo();

@A::foo();//直接在类外调用A类的foo方法不能获取到A类(就是说不能在类外使用$this指代目标类)
//$this->foo();//会报错

$b = new B();
@$b->bar();

// Note: the next line will issue a warning if E_STRICT is enabled.
@B::bar();

echo ‘<br/>‘;

执行效果

时间: 2024-09-30 05:35:14

php学习笔记(一)————php类的概念的相关文章

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

angular学习笔记(九)-css类和样式3

再来看一个选择li列表的例子: 点击li中的任意项,被点击的li高亮显示: <!DOCTYPE html> <html ng-app> <head> <title>6.3css类和样式</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="scri

angular学习笔记(九)-css类和样式2

在上一个例子中,元素的类名使用拼接的方法,这样,类名中就不得不带有true或false,并且不易维护,所以,angular使用ng-class属性来控制元素的类名: 我们来看一个小例子,点击error按钮,顶部提示错误框,点击warning按钮,顶部提示警告框. 错误框的类名是.err,警告框的类名是.warn: <!DOCTYPE html> <html ng-app> <head> <title>6.2css类和样式</title> <

C++ Primer Plus学习笔记之继承类的初始化顺序

C++ Primer Plus学习笔记之继承类的初始化顺序 基类的构造函数,析构函数和操作符函数operator=是不能被派生类继承的: 那么,当创建一个派生类对象时,怎样调用基类的构造函数对基类的数据进行初始化呢??? 答案是:构造函数执行时遵行先兄长(基类),再客人(对象成员),后自己(派生类)的顺序: 另一方面,执行析构函数时,先执行派生类的析构函数,再执行基类的析构函数.原因是,对基类的破坏隐含了对派生类的破坏,所以派生类的析构函数必须先执行: #include<iostream> u

Lua学习笔记4:类及集成的实现

-- Lua中类的实现 -------------------------------- 基类 ---------------------------- classBase = {x = 0,y = 0} -- x,y为类的成员变量 classBase.__index = classBase -- 这句是重定义元表的索引,必须要有 --模拟构造体,一般名称为new() function classBase:new(x,y) local self = {}     -- 初始化对象自身 setme

C++学习笔记47:链表的概念与结点类模板

学堂在线学习笔记 链表的概念与结点类模板 顺序访问的线性群体--链表类 链表是一种动态数据结构,可以用来表示顺序访问的线性群体: 链表是由系列结点组成,结点可以在运行时动态生成: 每一个结点包括数据域和指向链表中下一个结点的指针(即下一个结点的地址).如链表中每个结点中只有一个指向后继结点的指针,则该链表称为单链表: 单链表的结点类模板 template <class T> void Node<T>::insertAfter(Node<T> *p) { //p结点指针域

4.2-全栈Java笔记:对象和类的概念及定义

对象和类的概念 我们人认识世界,其实就是面向对象的.大家眼里都是一个个对象,要不怎么老说搞对象搞对象啊.比如现在让大家认识一下"天使"这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了. 但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!总结的过程就是抽象的过程. 小时候,我们学自然数时怎么定义的?像1

非专业码农 JAVA学习笔记 6java工具类和算法-string

续<非专业码农 JAVA学习笔记 5 java工具类和算法> 五.字符串string 字符串和字符的差别:字符串双引号括起来”n”,字符用单引号括起来,表示一种符号’\n’ 1.string的主要方法和属性 类 方法或者属性 备注 定义string Stirng s=new string(“值”),string s=”值” 属性 string.length:string的长度为字节 方法startswith,endswith s.startwith(“值”)-以值为开头,s.endswith(

C++Primer学习笔记------对象和类(1)

一.有关类的基本知识 1.类型 仔细想想,我们通常用什么标准来判定一个数据的数据类型呢.有两个,第一个是数据的存储方式,比如char站一个自己,int占四个自己,第二个就是这种类型能够做的操作.比如整型数据可以做取余操作,但是浮点数就不可以. 所以在定义一个变量的时候,我们通常完成了下面这几件事: (1)决定要为这个类型的变量分配的内存 (2)决定如何解释内存中的位,比如在定义数组的时候,在数组的索引+1时,到底是移动几个内存单元,是根据这个数组元素的数据类型来确定的. (3)决定了这个变量所能

java入门学习笔记之1(类的定义,代码的编译执行)

这篇文章讲解Java代码的基本执行过程 我们先抛开各种JAVA IDE,开发工具,只使用文本编辑器,以突出最本质的东西. 在Linux环境下,我们编辑一个文件: vim HelloWorld.java 编辑如下代码: 1 public class HelloWorld{ 2 String name; 3 public HelloWorld(String name){ 4 this.name = name; 5 } 6 public void pHelloWorld(){ 7 System.out