当前位置:首页 » 编程语言 » php成员变量

php成员变量

发布时间: 2024-05-21 16:21:50

‘壹’ php类中的函数能否调用类中成员变量

php类中的函数能调用类中成员变量。即使没有具体对象,也能调用类的静态成员函数和成员变量。

‘贰’ php中如何给成员变量,赋值

classren_min
{
private$aaa;

function_loveyou($inp)
{
$this->aaa=$inp+1;
return$this->aaa;
}
}

$ceshi=newren_min;
echo$ceshi->_loveyou(800);

‘叁’ php构造方法对成员变量赋值 function__construct

function __construct

function 是系统关键词,表示定义一个方法,后面加空格然后根方法名( __construct
是方法名)。你的未加空格

__construct 是系统内置的,叫魔术方法,每次实例化类是会自动执行此方法。
还有就是调用类的成员变量不需要在变量前面加 $ 比如:
$this->school_name = $name; 正确
$this->$school_name = $name; 错误

<?php
class School {
public $school_name;
public $school_student;
public $school_room;
public $school_teacher;
function __construct($name, $student, $room, $teacher) {
$this->school_name = $name;
$this->school_student = $student;
$this->school_room = $room;
$this->school_teacher = $teacher;
}
function show() {
echo "!@#$%^&*";
}
}

class People extends School {
public $teachername;
function __construct($tname, $studentconsts) {
$this->teachername = $tname;
$this->school_student = $studentconsts;
}

function show() {
return "今天上课" . $this->teachername . "讲课,学生" . $this->school_student . "人";
}
}

class Tongji extends School {
function show() {
return "学校名:" . $this->school_name . "学生数:" . $this->school_student . "教室数:" . $this->school_room . "教师数:" . $this->school_teacher;
}
}

$a = new People ( "周周周", 20 );
$b = new School ( "DZ", 20, 50, 2 );
echo $a->show () . "<br>";
echo $b->show ();

?>

‘肆’ php 类中 通过成员方法访问成员变量有什么好处,我知道是争对于安全性,但不能解释怎么个安全法,

将成员变量私有化,并使用公有接口去访问,是为了保证数据的正确性,保证对象能够正常工作。


对象有两个作用,一是保存数据,二是拥有操作数据的方法。对象就是一个黑盒子,隐藏数据操作细节,而我们可以轻松地处理和取得数据,不需要了解内部的处理过程。对象的数据只由它自己去处理,没有外部干涉,这样的数据是安全的可信任的。


如果我们能够任意改变对象的数据,就是对其密封性的破坏。在"外力"的作用下,对象拥有的数据类型和值发生改变,很可能会影响其内部的处理过程,严重时会发生错误。


示例一:

classDivision{
public$a;
public$b;
publicfunction__construct($a,$b){
if($b==0)
thrownewException('divisionbyzero!');
$this->a=$a;
$this->b=$b;
}
publicfunctionrun(){return$this->a/$this->b;}
}
$a=newDivision(5,5);
$a->b=0;
$a->run();//出错了,因为除数被设为了0

在上例中,虽然构造函数对传入的变量经行了过滤,但由于变量是公有的,用户“不小心”更改了$b的值,造成了程序异常。


使用函数来访问变量,可以对变量经行预处理,防止用户传入了不合法的值。这就像是在对象的前面加上了一道“防火墙”,保证程序正常地工作。


示例二:

classA{
publicfunctioncall(){echo'A->call()iscalling!';}
}
classB{
private$_a;
publicfunctionsetA(A$a){
if(!is_callable($a,'call'))
thrownewException('A->call()isnotcallable!');
$this->_a=$a;
}
publicfunctioncall(){
if($this->_a)
$this->_a->call();
}
}

在上例中,属性$a是私有的,只能通过setA()方法来设置。setA()方法中使用了PHP的“类型提示”功能,这就要求传入的参数必须是A的实例。在函数中的代码又检查了$a对象是否含有可以调用的$a->call()方法,如果失败就会抛出异常。从而保证了传入变量的正确性。


希望能帮到您~也希望能够及时采纳~

‘伍’ php中属性就是变量,方法就是函数.这句话对吗

属性又称为成员变量,可以认为是c语言的变量,方法可以认为是c语言的函数。
但是java和c语言最大的不同是把函数和变量封装在类里面。

‘陆’ 瀹氢箟涓涓姹借溅绫 3涓鎴愬憳鍙橀噺 鍝佺墝 棰滆壊 阃熷害

PHP镄

<?

//鍒涘缓涓涓姹借溅绫

class Car

{

//涓嬮溃鏄姹借溅镄勬垚锻桦睘镐

var $name; //姹借溅镄勭墝瀛

var $color; //姹借溅镄勯滆壊

var $speed; //姹借溅镄勯熷害

//瀹氢箟涓涓鏋勯犳柟娉鍙傛暟涓虹墝瀛$name銆侀滆壊$color鍜岄熷害$speed

function __construct($name, $color, $speed)

{

//阃氲繃鏋勯犳柟娉曚紶杩涙潵镄$name缁欐垚锻桦睘镐$this->name璧嫔埯浣垮

$this->name=$name;

//阃氲繃鏋勯犳柟娉曚紶杩涙潵镄$color缁欐垚锻桦睘镐$this->color璧嫔埯浣垮

$this->color=$color;

//阃氲繃鏋勯犳柟娉曚紶杩涙潵镄$age缁欐垚锻桦睘镐$this->speed璧嫔埯浣垮

$this->age=$speed;

}

//姹借溅灞炴

function showcar()

{

echo "鎴戠殑鐗屽瓙锛".$this->name." 棰滆壊锛".$this->color." 阃熷害锛".$this->speed."<br>";

}

}

//阃氲繃鏋勯犳柟娉曞垱寤3涓瀵硅薄$p1銆乸2銆$p3,鍒嗗埆浼犲叆涓変釜涓嶅悓镄勫疄鍙备负鐗屽瓙銆侀滆壊鍜岄熷害

$p1=new Car(钬瀹濋┈钬濓纴钬濈槠镩测, 220);

$p2=new Car(钬娉曟媺鍒钬濓纴钬濋粦镩测, 280);

$p3=new Car(钬淇濇椂鎹钬濓纴钬濋粍镩测, 290);

//涓嬮溃璁块梾$p1瀵硅薄涓镄勬苯杞

$p1->showcar();

//涓嬮溃璁块梾$p2瀵硅薄涓镄勬苯杞

$p2->showcar();

//涓嬮溃璁块梾$p3瀵硅薄涓镄勬苯杞

$p3->showcar();

?>

杈揿嚭缁撴灉涓猴细

鎴戠殑鐗屽瓙锛氩疂椹棰滆壊锛氱槠镩查熷害锛220

鎴戠殑鐗屽瓙锛氭硶𨰾夊埄棰滆壊锛氶粦镩查熷害锛280

鎴戠殑鐗屽瓙锛氢缭镞舵嵎棰滆壊锛氶粍镩查熷害锛290

热点内容
电脑当服务器怎么降低功耗 发布:2024-11-27 15:30:45 浏览:641
苹果手机夸克缓存的视频怎么转为本地视频 发布:2024-11-27 15:24:05 浏览:810
linuxm4 发布:2024-11-27 15:15:12 浏览:321
算法交易现状 发布:2024-11-27 15:05:49 浏览:825
搜同网服务器为什么登录不上 发布:2024-11-27 15:05:41 浏览:287
如何让无线网速变快华为安卓手机 发布:2024-11-27 15:04:13 浏览:595
cod17编译着色器卡住c盘满了 发布:2024-11-27 14:55:56 浏览:386
锁机软件反编译 发布:2024-11-27 14:36:02 浏览:148
欣才php培训中心 发布:2024-11-27 14:35:57 浏览:938
RDB算法 发布:2024-11-27 14:26:57 浏览:137