php給對象賦值
❶ 為什麼php對象的屬性不能給它賦值為對象和資源性的變數
可以的。。只是在定義類屬性的時候不可以。
因為在聲明屬性的時候,不能書寫表達式。
實例化好的對象屬性,是可以隨意賦值的。除非是 __set 和 __get 方法製作的「偽屬性」,在方法里加了判斷。
❷ 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對象屬性賦值
你這樣使用時不符合oop的規范的,成員變數在最開始只能簡單的定義,如果你要實現上述的代碼應該這樣:
class Test{
public $strtodate = 0;
public function __construct() {
$this->$strtodate = strtotime('2012-01-22');
}
}
$test = new Test();
echo $test->strtodate;
❹ php怎麼根據選擇動態賦值
1.先將$txt變數傳至頁面的js變數中保存
2.頁面元素需要定義5個radio標簽,每一個標簽的value值對應不同的$txt
3.用JavaScript抓取radio的click事件,根據點中的對象顯示value值
❺ 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的值也會發生變化。
?>
❻ ThinkPHP遇到的類私有變數賦值問題
Home\Common\Map.class.php文件
<?php
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '張三',
'1' => '李四',
'2' => '王五',
'3' => '趙六'
);
return $map;
}
}
Home\Controller\IndexController.class.php文件
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 寫法1
// 測試 靜態函數 類私有變數賦值
public function getName() {
$name = map::getName(); // 寫法2
var_mp($name);
}
}
其中,寫法1出錯,顯示:
寫法2顯示:
如果想私有變數賦值,可以構造函數賦值,即在__construct()里賦值:
$this->name = map::getName(); // 注意千萬別寫成$this->$name
類的變數成員叫做「屬性」,或者叫「欄位」、「特徵」。屬性聲明是由關鍵字 public , protected 或者 private 開頭,然後跟一個普通的變數聲明來組成。 屬性中的變數可以初始化,但是初始化的值必須是常數 ,這里的常數是指 PHP 腳本在編譯階段時就可以得到其值,而不依賴於運行時的信息才能求值。
在類的成員方法裡面,可以用 -> (對象運算符):$this -> property(其中 property 是該屬性名)這種方式來訪問 非靜態屬性 。 靜態屬性 則是用 :: (雙冒號):self::$property 來訪問。
當一個方法在類定義內部被調用時,有一個可用的偽變數 $this。$this 是一個到主叫對象的引用(通常是該方法所從屬的對象,但如果是從第二個對象 靜態 調用時也可能是另一個對象)。
具體請參考:http://php.net/manual/zh/language.oop5.properties.php
❼ PHP對象賦值給變數的兩種方式的區別,一般賦值和引用賦值
把變數存儲值當成文件存儲內容來理解,普通賦值就是文件復制,引用賦值就是建立快捷方式,明白了吧。
❽ 在php5中對象的賦值是怎麼回事 $a=new Class() $b=$a 等於號是指向同一內存地址,還是重新開內存
當類生成一個實例(對象)的時候,返回值$a並不是對象本身,而只是對象的一個id(或者資源句柄),所以,當$a被賦值給$b的時候,$b也指向了這個對象。當對$a初始化的時候,$b也被初始化了。當$a被銷毀(=null)的時候,因為對應的對象還有一個句柄存在($b),所以對象並不會被銷毀,析構函數也不會被觸發。如果是$b=&$a 這樣是指向同一內存 當$a=null 的時候 $b 也為null
❾ 請問下在PHP里如何修改對象裡面數組里的值呢
給數組元素賦值,與該類型普通變數賦值方法相同: a[2]=20 ; //直接把相應的元素引用( a[2] )當變數使用就可以了。 數組的定義方式為: 類型 數組名[數組元素個數] ; 如: int a[10];數組成員的引用為:數組名[下標] printf( "%d", a[0] ) ;數組
❿ PHP的類對象的賦值和clone的區別
PHP的類的賦值方式,有3種情況,一種是$a = new class()操作,創建類;一種是普通的對象賦值$a = $b; 一種取地址的賦值方式$a = &$b。那麼,這三種賦值,指向的內存是否是同一塊呢?好吧,我們一起來做一個實驗。
代碼如下:
<?php
class mm {
public $name = 'Peter';
}
$a = new mm();
echo $a->name,"\n";//輸出為Peter
$b = $a;
$c = &$a;