php 普通类 class

普通类 以关键字“class”定义,后跟类名。
类名不能是PHP预留关键字,必须以字母或下划线开头,每个类有属于自己的常量、方法、属性。
类的实例叫作对象,可通过关键字“new”来实例化对象。

说明:
1)类的属性和方法有三个访问级别,分别为public(公有), protected(受保护)或private(私有)。
类的外部不能直接调用protected(受保护)或private(私有)的方法和属性。
2)类的属性有普通属性和静态、常量属性,静态、常量属性则分别用关键字“static”和“const”声明。
3)类的普通方法、属性被自己的成员函数调用时可使用“$this->”,静态方法及静态属性也可通过这种方式访问。
4)类的常量属性、静态属性、静态方法,通过“self::”调用。非静态的方法也可以通过“::”调用,但是非静态的属性不能通过“::”访问。

class A{
	const MYCONST = 1; //常量属性
	static $b = 2;     //静态属性
	var $a = '3';      //普通属性
	public $c = 'c is public';
	protected $d = 'd is protected';
	private $_d = '_d is private';

	protected static $e = 'protected static';
	private static $_e = 'private static';

	public function b(){
	    var_dump('public method');
	    var_dump($this->c);
	    var_dump(self::e());
	}

	protected function c(){
	    var_dump('protected method'); 
	}

	private function _d(){
	    var_dump('private method'); 
	}

	static function e(){
        var_dump(self::$b);
        var_dump(self::MYCONST);
	}

	static function f(){

        //不能通过“::”访问非静态的属性 PHP Fatal error:  Uncaught Error: Access to undeclared static property: A::$a
        //var_dump(self::$a,self::$c);
        
        var_dump($this->a,$this->c);

	}
}


$a = new A();


//属性调用

var_dump($a->c);
//var_dump($a->d);//PHP Fatal error:  Uncaught Error: Cannot access protected property A::$d
//var_dump($a->_d);PHP Fatal error:  Uncaught Error: Cannot access private property A::$_d

var_dump(A::MYCONST);
var_dump(A::$b);

//var_dump(A::$e);//Fatal error:  Uncaught Error: Cannot access protected property A::$e

//var_dump(A::$_e);//Fatal error:  Uncaught Error: Cannot access private property A::$_e

//var_dump(A::$f);//Fatal error:  Uncaught Error: Access to undeclared static property: A::$e


//方法调用

$a->b();

//$a->c();//Fatal error:  Uncaught Error: Call to protected method A::c()

//$a->d();//Fatal error:  Uncaught Error: Call to undefined method A::d()

//$a->_d();//Fatal error:  Uncaught Error: Call to private method A::_d()

A::e();
A::f();
A::b();
<?php
  class Student {
    // 类里的属性、方法和函数的访问权限有 (函数和方法是同一个概念)
    // private 私有的 protected 受保护的 public 公有的
    // 类常量 没有访问权限修饰符
    const STUDENT = 'Tom';
    // 属性
    public $stu_name;
    // 静态属性
    public static $stu_num = 1;
    // 方法
    public function stuFunction() {
      echo 'non_static_function',PHP_EOL;
    }
    // 静态方法
    public static function static_stuFunction() {
      echo 'static_function',PHP_EOL;
    }
    // 构造函数 创建对象时自动调用
    public function __construct($stu_name) {
      $this->stu_name = $stu_name;
      echo '__construct',PHP_EOL;
 
    }
    // 析构函数 销毁对象时自动调用
    public function __destruct() {
      echo '__destruct',PHP_EOL;
    }
  }
 
  // 实例化类对象
  $object = new Student('Tom');
  // 对象调用属性
  echo $object->stu_name,PHP_EOL;
  // 对象调用静态属性
  echo $object::$stu_num,PHP_EOL;
  // 类调用静态属性
  echo Student::$stu_num,PHP_EOL;
  // 使用对象分别调用方法和静态方法
  $object->stuFunction();
  $object->static_stuFunction();
  $object::stuFunction();
  $object::static_stuFunction();
  // 使用类分别调用方法和静态方法
  Student::stuFunction();
  Student::static_stuFunction();
  // 类调用类常量
  echo Student::STUDENT,PHP_EOL;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值