php對象參數傳遞參數
Ⅰ php 把對象實例化當作參數傳到寧外一個類
語法上是完全正確的,但是這種編程思路非常重要。旨在配置層,數據層,視圖層之間有遞進。好處是如果更換了資料庫配置,只要修改一個位置即可。
方面代碼重用,容易分層。
只要符合介面,可以根據需要演繹很多模板。
Ⅱ php對象傳值問題
$是變數的定義符;
$client是一個變數;
->是指向操作符;
$client->;實例化後的對象;
litime(),是一個函數;
$client -> litime();是對象$client里的一個方法;
8是傳給litime()函數的第一個參數;"UTF-8" 是第二參數;
$client -> litime ( 8 ,"UTF-8" );就是把8和"UTF-8"作為參數傳給對象$client里的litime()方法,返回litime的結果;
希望對你能有所幫助。
Ⅲ php 在對象的方法中傳遞參數是對象本身
<?php
class newclass{
var $a='a的值';
var $b;
function aa($new){
echo $new->a;
}
}
$new=new newclass();
$new->aa($new);
?>
實際上傳進去了是$new對像的一個地址,不知道你要這樣有何用途?
Ⅳ php對象:對象傳入函數問題
函數在調用的時候,參數會被重新開辟內存空間的。
也就是說:
你傳值穿的是$p1,但在函數test運行的時候會另開辟一個空間,復制一遍$p1,之後再函數中操作的內存都是這個函數新開辟的空間。在這個函數test消亡的時候,這個空間被釋放。
所以說你這個根本就沒有修改了$p1的值,只是復制了一遍,然後改了,然後刪了。
如樓上說的,如果你在參數前面加上"&"符號,這個叫引用。則在參數運行的時候不會另外的開辟內存空間,而是用你的參數的內存空間。
對於函數你可以看看c或者c++語言的函數部分,他們是一樣的。給你個例子:
<?php
function swap(&$a,$b){//$a$b叫形參,只是在表示第一個參數第二個參數
$a=20;
$b=10;
}
$x=10;
$y=20;
swap($x,$y);//swap中第一個參數是帶引用的,被改變了值,第二個參數沒有引用,並不會改變參數的值
echo "x=".$x." y=".$y;//結果 x=20 y=20
?>
Ⅳ PHP對象到底是值傳遞還是引用傳遞
對象在函數中是引用傳遞
即使賦值給其它變數,也是引用
但是改變了$a的類型,准確的說是zval.value指針都變化了,所以此時產生了分裂。
所以:
盡量避免函數內操作外部對象,否則有可能造成致命性的邏輯錯誤,特別是改變對象數據的時候。
或者在做對象數據傳遞的時候要注意數據的嚴謹性。
Ⅵ php中可以將一個對象當作參數傳到另一個頁面嗎
class test{
//略
}
$obj = new test();
$s_obj = serialize($obj);
session_start();
$_SESSION['s_obj'] = $s_obj;
將對象serialize再放入session或cookie...文件 什麼的.到另一個頁面用相應的方式取出來再unserialize就可以用了.
參考php手冊:
想要將已序列化的字元串變回 PHP 的值,可使用 unserialize()。serialize() 可處理除了 resource 之外的任何類型。甚至可以 serialize() 那些包含了指向其自身引用的數組。你正 serialize() 的數組/對象中的引用也將被存儲。
當序列化對象時,PHP 將試圖在序列動作之前調用該對象的成員函數 __sleep()。這樣就允許對象在被序列化之前做任何清除操作。類似的,當使用 unserialize() 恢復對象時, 將調用 __wakeup() 成員函數。