php成員變數
『壹』 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