php类与构造函数解析

关于类大家都有一定的认识这里只介绍在php中类值得注意的地方

----类的创建----

php使用关键字class创建一个类,并且使用一对大括号
如:

class name{
  public $n="";
  private $u="";

  public function name() {
    $n="233";
    $u="23333";
  }

  public function rename($newn){
     $this->n=$newn;//this表示这个类
  }
}

  

结尾不打分号。则$n,$u为字段;name()为构造函数(__construct()也可定义构造函数,详见下文),可以为字段赋值;rename()为方法。

----字段----

比较
$obj=new name();
echo $obj->n;

$obj=new name();
echo $obj->u;

前者可执行,后者不可因为$u前声明了私有private。这一点是与c++类似的。

代码:

public static $nm ="2333333333333333" ;

  

为函数申明了一个静态字段。
通过类名与::可以直接访问该变量

echo name::$nm;

这一点也是与c++类似的。

php中还可以通过 self::+$+变量名 在类中访问静态字段,这时self相当于$this->

方法的使用与字段类似

----构造函数----

在php5和早期版本中构造函数与类同名

在php5和之后的版本中魔术字 __construct() 可定义构造函数

魔术字 __construct() 可定义构造函数

class name{
  public $n="";
  private $u="";

  public function __construct() {
    $n="233";
    $u="23333";
  }

  public function rename($newn){
     $this->n=$newn;
  }
}

构造函数可有参数

__construct($name="",$sex="man",$age=0){}

在申明对象时

$obj= new name("我","man",28);

如果没有给出参数,则默认为=后的值。

转自我的个人网站,转载标明出处:http://www.cirno.win/insert/page.php?id=6

时间: 2024-10-22 07:29:05

php类与构造函数解析的相关文章

C# 类的构造函数 解析

构造函数 构造函数是一种方法,其名称与其类型的名称相同. 其方法签名仅包含方法名称和其参数列表:它不包含返回类型. 构造函数的定义规则: (1)C# 语言的构造函数的名称必须与类名相同.(2)构造函数没有返回值.它可以带参数,也可以不带参数.(3)声明类对象时,系统自动调用构造函数.在构造函数中不要做对类的实例进行初始化以外的事情,也不能被显式地调用.(4)构造函数可以重载,从而提供初始化类对象的不同方法:(5)若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空.(

tuple解包给类的构造函数

首先我们的第一步当然是将tuple解包.tuple提供了一个get函数来获取第N个元素.例如: get<1>(make_tuple(...)); 要将一个tuple全部拆解,就可以使用通过多次调用这个函数来进行解析,例如: auto tup = make_tuple(..........); func( get<0>(tup),get<1>(tup),get<2>(tup)......get<n>(tup) ); 而实际上,0,1,...n这个数

OOP3(继承中的类作用域/构造函数与拷贝控制/继承与容器)

当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内.如果一个名字在派生类的作用域内无法正确解析,则编译器将继续在外层的基类作用域中寻找该名字的定义 在编译时进行名字查找: 一个对象.引用或指针的静态类型决定了该对象的哪些成员是可见的,即使静态类型与动态类型不一致: 1 #include <iostream> 2 using namespace std; 3 4 class A{ 5 public: 6 // A(); 7 // ~A(); 8 ostream& print(ost

java.lang.Void类源码解析_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 在一次源码查看ThreadGroup的时候,看到一段代码,为以下: /* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityException if the current thread cannot create a * thread in the specified thread grou

【C++学习之路】派生类的构造函数(二)

二.有内嵌对象的派生类 1.一般来说,我们会这样定义构造函数 student( int i, string nam, int pid, string pnam, int sid) : person( i, nam),parent(pid,pnam){ stuid = sid; } person是基类的构造函数,parent是该派生类内嵌的person子对象   2.具体例子 1 #include <iostream> 2 using namespace std; 3 class A 4 { 5

ThinkPHP中的__initialize()和类的构造函数__construct()

ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对请更正.首先,我要说的是1.__initialize()不是php类中的函数,php类的构造函数只有__construct().2.类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化.3.当子类和父类都有__co

对C++中派生类的构造函数和析构函数的认识

一:构造函数 形式:派生类名::派生类名:基类名1(参数1),基类名2(参数2),--基类名n(参数n),数据成员1(参数1),数据成员2(参数2),--数据成员n(参数n){ 各种操作的说明 } 执行过程:先执行基类的构造函数,再进行数据成员的赋值,最后执行函数体. 其中基类名和数据成员的顺序是由在派生类的定义中声明的顺序决定执行的顺序的,因此它们的顺序是任意的,但为了可读性,还是最好按顺序写. 如果基类只有默认构造函数,则基类名和参数表可以不用写出来. 二:复制构造函数 派生类的构造函数的形

C++构造函数 &amp; 拷贝构造函数 &amp; 派生类的构造函数 &amp; 虚继承的构造函数

构造函数 ,是一种特殊的方法 .主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 .特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载.(摘自百度百科构造函数). 一.最基本的构造函数 1 class Base 2 { 3 public: 4 Base(int var) : m_Var(var) 5 { 6 } 7 private: 8 int m_Var; 9 }; 以上构造函数的执行过程:

c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)

现在来测试一下在多重继承,虚继承,MI继承中虚继承中构造函数的调用情况. 先来测试一些普通的多重继承.其实这个是显而易见的. 测试代码: //测试多重继承中派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!"<<endl; }