⑴ php 賦值
假定一個類:test
class test
{
private $name;
function __construct($name)
{
$this->name = $name; //這句的意思就是在對象初始化的時候將值賦給受保護的變數$name,當然我一般會把後面參數的$name使用$pname代替,這樣不會被混淆了
}
}
$test = new test('Test_name');
你應該多看些關於面向對象設計方面的書,這樣或許會好些!
Good luck!
⑵ 為什麼PHP對象的屬性不能給它賦值為對象和資源性的變數
可以的。。只是在定義類屬性的時候不可以。
因為在聲明屬性的時候,不能書寫表達式。
實例化好的對象屬性,是可以隨意賦值的。除非是 __set 和 __get 方法製作的「偽屬性」,在方法里加了判斷。
⑶ PHP 類里賦值一般用哪個函數,如何分辨
construct
通常構造方法被用來執行一些有用的初始化任務,如對成員屬性在創建對象時賦予初始值。
構造方法的在類中的聲明格式
function __constrct([參數列表]){
方法體//通常畝李用來對成員屬性進行初始化賦值
}
__get
這個方法用來獲取私有成員屬性值的,有一個參數,參數傳入你要獲取的成員屬性的名稱,返回攔耐畢獲取的屬性值,這個方法不用我們手工的去調用,因為我們也可以把這個方法做成私有的方法,是在直接獲取私有屬性的時候對象自動調用的。因為私有屬性已經被封裝上了,是不能直接獲取值的(比如:「echo
$p1->name」這樣直接獲取是錯誤的),但是如果你在類裡面加上了這個方法,在使用「echo
$p1->name」這樣的語句直接獲取值的時候就會自動調用__get($property_name)方法,將屬性name傳給參數$property_name,通過這個方法的內部執行,返回我們傳入的私有屬性的值。如果成員屬性不封裝成私有的,對簡芹象本身就不會去自動調用這個方法。
⑷ 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;
}
}
⑸ 在php5中對象的賦值是怎麼回事 $a=new Class() $b=$a 等於號是指向同一內存地址,還是重新開內存
當類生成一個實例(對象)的時候,返回值$a並不是對象本身,而只是對象的一個id(或者資源句柄),所以,當$a被賦值給$b的時候,$b也指向了這個對象。當對$a初始化的時候,$b也被初始化了。當$a被銷毀(=null)的時候,因為對應圓臘的對象還有一個句柄存在($b),所以對象並不會被銷毀,穗腔汪析構函數也不會被觸發。如果是$b=&$a 這樣是指猜仔向同一內存 當$a=null 的時候 $b 也為null
⑹ PHP實現刪除多重數組對象屬性並重新賦值的方法
本文實例講述了PHP實現刪除多重數組對象屬性並重新賦值的方法。分享給大家供大家參考,具體如下:
實例:sphinx搜索出來的結果,要去掉某個屬性值:
$cl
=
new
SphinxClient
();
$query
=
$cl->Query
(
$keyword,
$index
);
方法一,直接刪除屬性:
foreach
(
$query['matches']
as
$k
=>
$val
)
{
unset($query['matches'][$k]["attrs"]["content"]);
unset($query['matches'][$k]["attrs"]["remarks"]);
}
方法二,把對應屬性值設置為空或其他需要的值:
foreach
(
$query['matches']
as
$k
=>
$val
)
{
$query['matches'][$k]["attrs"]["content"]
=
'';
$query['matches'][$k]["attrs"]["remarks"]
=
'';
}
註:要操作多重數組的關鍵是foreach循環里用
as
$k
=>
$val
取得具體元素的下標,否則無法操作。
另:php使用sphinx搜索可參考
php啟用sphinx全文搜索的實現方法
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《php常用函數與技巧總結》、《PHP錯誤與異常處理方法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
⑺ php如何賦值
PHP賦值有多種情況:
直接賦值:賦值符號"=" ,賦值符號前面的是變數,後邊的是賦的值;示例如下:
<?php
$a=10;
$b='';
?
傳遞賦值:將一個表達式的值賦予一個變數(改變其中一個變數的值,不會影響到另一個變數的值);示例如下:
<?php
$num1=100;
$num2=$num1;//傳值賦值後,$num2的值為:100
?
引用賦值:賦值符號"&",當新的變數引用了原始變數的值後,如果改變新的變數將影響到原始變數。示例如下:
<?php
$a=3;
$b=5;
$a=&$b;//把$b的地址賦值給$a,這時$a的值也是5了。如果修改$b的值,那麼$a的值也會發生變化。
?>
⑻ php對象屬性賦值
你這樣使用時不符合oop的規范的,成員變數在最開始只能簡單的定義,如果你要實現上述的代碼應該這樣:
class Test{
public $strtodate = 0;
public function __construct() {
$this->$strtodate = strtotime('2012-01-22');
}
}
$test = new Test();
echo $test->strtodate;