您的位置:

php私有成员,php私有成员关键词

本文目录一览:

3、 一个类的公共成员与私有成员有何区别

公共成员与私有成员有何区别:

一、public(公共成员)

public,顾名思义,就是公开的数据信息,可以在程序中的任何位置(类内,类外),被其他类的对象调用,子类可以继承和使用父类中的公共成员。

二、private(私有成员)

被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问,在子类中也不可以被访问。

相关概念:

PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程。

该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

经过二十多年的发展,随着php-cli相关组件的快速发展和完善,PHP已经可以应用在 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等非 Web 领域的系统研发。

以上内容参考:百度百科-php

php,子类无法访问父类私有属性,子类实例化再赋值后,子类所添加的新成员属性不存在

我把涉及到这个问题的知识点,可以和大家分享一下:

1.父类humanBeing , 子类student , 实例对象 $m (注意:$m是子类student 的实例,和humanBeijing没有直接关系)

2.private 的属性.仅在本类里使用;任何子类、实例对象都无法访问,更别说赋值。这个在书本上都一直是这么说滴。。哈哈。。。

根据以上知识点,来看你这个问题:

$student1=new student;

/*实例一个student的对象,此时注意,这个对象并不会继承父类humanBeing的三个 private变量$name,$age,$gender*/

$student1-name='zhangsan';

$student1-age=20;

$student1-gender='male';

/*这里需要注意.很多人会误以为是给父类humanBeing的三个属性赋值了,这是错的。这里的赋值,仅仅是给子类student的三个属性赋值,这里也许会有人问,子类student那有什么属性呀?在php中,所有的变量,不要求申明,在类中属性也是一样的,不要求申明,而且类中,默认都是public。所以上面的这三行代码,仅仅是子类student的三个属性赋值,和父类humanBeing的三个属性,没有任何关系,仅仅名字一样而已*/

function say(){

echo "My name is {$this-name} and I am {$this-age} years old. I am {$this-gender}.br /";

}

/*这个是父类humanBeing的公有方法,(默认的是public的),这个方法中 $this - name.这里的$this 是指父类student,$this - name是指父类student的属性,从始至终,它并没有被赋值,所以它是空的,(而且它也不能被赋值,因为是private),这里的$student1-name='zhangsan';赋值操作,仅仅是修改子类student的$name */

我想这么回答,你应该非常清楚了吧

再来理解后面的例子,就很容易了。

$m-name="zhangsan";

/*仅仅是给子类Man的属性赋值,而且因为可以省略声明,默认又是public的,所以能直接赋值,当然也可以输出了*/

class Person{

private $name;

}

/*可以直接把private $name;去掉,因为后面的赋值,跟它没有任何关系,直接修改成*/

class Person{

}

PHP中private和public还有protected的区别

1、private修饰词,表示成员是私有的,只有自身可以访问; 2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。

在PHP中,如何在类外部操作私有成员?

若想在类外部操作类的私有成员,请在类内部使用__get()和__set()两个方法:

class model{

function __set($name,$value){

$this-$name=$value;

}

function __get($name){

return $this-$name;

}

}

echo $aa-name;