『壹』 php對象屬性賦值
你這樣使用時不符合oop的規范的,成員變數在最開始只能簡單的定義,如果你要實現上述的代碼應該這樣:
class Test{
public $strtodate = 0;
public function __construct() {
$this->$strtodate = strtotime('2012-01-22');
}
}
$test = new Test();
echo $test->strtodate;
『貳』 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();
?>
『叄』 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 賦值
假定一個類:test
class test
{
private $name;
function __construct($name)
{
$this->name = $name; //這句的意思就是在對象初始化的時候將值賦給受保護的變數$name,當然我一般會把後面參數的$name使用$pname代替,這樣不會被混淆了
}
}
$test = new test('Test_name');
你應該多看些關於面向對象設計方面的書,這樣或許會好些!
Good luck!
『伍』 php類怎麼給靜態變數賦值
<?php
classinfo{
publicstatic$height;
publicstatic$age;
function__construct($height,$age){
self::$height=$height;
self::$age=$age;
self::display();
}
publicstaticfunctiondisplay(){
echoself::$height.''.self::$age;
}
}
$info=newinfo('178','23');
?>
『陸』 在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是弱類型語言,所以php變數賦值的方法相對隨意,例如:
$a='abc';//直接給新定義的變數a賦值字元串abc
$b=25;//直接給新定義的變數b賦值整數25
這樣就是給變數賦值。
『捌』 php,給類的屬性賦值一個空數組有什麼用
主要還是確定類型吧。因為如果這個類屬性不賦值一個空數組,但在類方法了使用array_merge()函數合並這個屬性的時候,就會產生報錯。
classtest{
public$arr1;
public$arr2=[];
//執行這個方法會報錯
publicfunctionaction1($arr){
returnarray_merge($this->arr1,$arr);
}
//執行這個方法不會報錯
publicfunctionaction2($arr){
returnarray_merge($this->arr2,$arr);
}
}
『玖』 為什麼PHP對象的屬性不能給它賦值為對象和資源性的變數
可以的。。只是在定義類屬性的時候不可以。
因為在聲明屬性的時候,不能書寫表達式。
實例化好的對象屬性,是可以隨意賦值的。除非是 __set 和 __get 方法製作的「偽屬性」,在方法里加了判斷。
『拾』 php中為什麼創建了構造函數後,就不能對每個類的成員屬性重新賦值
其實,類和函數本質上差不多。。都是將一堆實現某種功能的代碼段封裝在一起。。。
成員屬性其實就是 變數 ,只不過這種定義在類里的 變數 ,只能給 類 或 類的對象使用。
類里邊的方法和 普通函數 完全一樣,只是普通函數可以直接用 函數名 調用,而定義在 類里 的函數只能被 類的對象 或 類 本身調用,不能直接用 函數名 調用,函數名 前面得帶上類名或對象名。