當前位置:首頁 » 編程語言 » 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

熱點內容
ftp端路徑 發布:2024-11-27 12:51:13 瀏覽:981
無法刪除訪問被拒絕請確定磁碟未滿 發布:2024-11-27 12:51:08 瀏覽:73
編程貓和你 發布:2024-11-27 12:49:33 瀏覽:232
2016郵件伺服器搭建 發布:2024-11-27 12:45:15 瀏覽:927
pythonstrptime 發布:2024-11-27 12:34:50 瀏覽:954
怎麼判斷組裝電腦配置真假 發布:2024-11-27 12:30:18 瀏覽:379
周鴻禕編程 發布:2024-11-27 12:30:12 瀏覽:615
索賠的腳本 發布:2024-11-27 12:30:09 瀏覽:547
什麼是淘寶資料庫 發布:2024-11-27 12:30:08 瀏覽:373
聯系輔導員重設密碼需要什麼 發布:2024-11-27 12:19:16 瀏覽:510