㈠ php類中給成員屬性初始化值為什麼報錯
PHP類中,若要初始化成員屬性,那麼成員屬性的初始值必須是一個常數,如果不是常數(如變數),則會報錯。
㈡ php類定義了屬性,而類中其他方法要使用默認值怎麼辦
不知道我理解的意思對不對,你是想把$a放在第一個參數,而他經常是使用到類的屬性值,不用賦默認值。開始我也弄錯了~~~
屬性$a沒必要在方法裡面傳參,方法體裡面直接就可以用了,如果不想改變值可以在方法體里重新聲明一個變數,把$a的值賦給他。
㈢ PHP中如何定義類及其成員屬性與操作
實測
php中,在類里邊可以定義屬性
class
a
{
public
$name;
public
$type;
}
在類中不能定義屬性,但是可以定義變數,並將其賦給他所在類的屬性
class
a
{
public
$name;
function
b(){
$othername
=
1;
$this->name
=
$othername;
}
}
$a
=
new
a();
$a->b();
echo
$a->name;
最後,祝新年快樂
㈣ php類定義了屬性,類中的方法要使用默認值怎麼辦
例如定義了屬性$user = 1,方法中就這樣$this->user使用。如果是靜態屬性,static $user = 1,方法中就這樣調用self::user
㈤ 在php中如何設置類的屬性,如何調用類的方法
PHP訪問類的屬性、方法使用箭頭語法(->)。這里我給你一個例子供你參考:
<?php
classMyClass{//定義MyClass類
public$name;//定義了一個公有屬性
protected$_age;//定義了一個保護屬性
private$_email;//定義了一個私有屬性
publicfunctionmy_method(){//定義my_method方法
}
protectedfunction_my_method2(){//定義_my_method2方法
}
}
$obj=newMyClass;//實例化
$obj->name='noname';//設置name屬性
$obj->_age=12;//這是錯誤的,不能設置保護屬性
$obj->address='KingStreet.'//設置一個未聲明的屬性是允許的,效果和公有屬性類似,但未賦值前不能使用。
$obj->my_method()//調用公有方法
$obj->_my_method2();//這是錯誤的,不能調用保護方法
你需要理解繼承、公有、保護和私有的概念。
繼承:子類繼承父類的公有、保護屬性和方法。
公有:類的實例可以訪問的屬性和方法。
保護:只能在類的內部及其子類內部訪問的屬性和方法。
私有:只能在類的內部訪問的屬性和方法。
這是個很基礎的問題,建議你多看書。
㈥ 我想輸出php類中的私有屬性的值,怎麼輸出不出來呢
我想你是不清楚公有,私有,受保護的區別吧:
PHP中有三種訪問修飾符,分別是:
public(公共的、默認)
protected(受保護的)
private(私有的)
public(公共的、默認)在PHP5中如果類沒有指定成員的訪問修飾符,默認就是public的訪問許可權。
protected(受保護的)被聲明為protected的成員,只允許該類的子類進行訪問。
private(私有的 ) 被定義為private的成員,對於類內部所有成員都可見,沒有訪問限制。對類外部不允許訪問。
㈦ php,給類的屬性賦值一個空數組有什麼用
主要還是確定類型吧。因為如果這個類屬性不賦值一個空數組,但在類方法了使用array_merge()函數合並這個屬性的時候,就會產生報錯。
classtest{
public$arr1;
public$arr2=[];
//執行這個方法會報錯
publicfunctionaction1($arr){
returnarray_merge($this->arr1,$arr);
}
//執行這個方法不會報錯
publicfunctionaction2($arr){
returnarray_merge($this->arr2,$arr);
}
}
㈧ php類屬性的賦值問題
cache_factory(這個是類名)::$cache_factory(這個是類內的私有靜態屬性,該屬性的值是cache_factory類的實例)->cache_config=$cache_config;其他不需要解釋了吧
不過這個代碼很爛,不建議把這個當作參考資料。幫你修改了一下,看這個吧
final class cache_factory {
private static $instance;
protected $cache_config = array();
protected $cache_list = array();
protected function __construct(array $configs) {
$this->cache_config = $configs;
}
public static function get_instance(array $cache_config = null) {
if (! self::$instance instanceof cache_factory) {
if (is_null($cache_config)) {
die('無效的初始化設置');
}
self::$instache = new cache_factory($cache_configs);
}
return self::$instance;
}
}
㈨ php類定義了屬性,類中的方法要使用默認值怎麼辦
每個方法都必須要定義的參數就可以直接定義個類屬性了,如果不變的話可以直接public $arg='xxx';
如果隨著場景不同這個值可能會發生變化,就把賦值放到構造方法里
public function __construct($aa)
{
$this->arg = $aa;
}
$obj = new exp($aa);
下面的方法就不用傳參數了,直接調用$this->arg就可以了
再如果每次調用不通的方法,變數arg都不同,就不要定義屬性了,直接給方法傳值就可以了。
㈩ PHP的變數如何給抽象類中屬性符初值
因為抽象類不能被實例化,所以需要通過繼承的方式為屬性賦值:
前提是抽象類中需要賦值的屬性不能被private修飾
<?php
abstract class AbstractClass
{
public $a = 1;
abstract protected function getValue();
// 普通方法(非抽象方法)
public function printOut() {
echo $this->a . "\n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {}
}
$b = new ConcreteClass1();
$b->a = 2;
$b->printOut();
?>