1.php函數傳遞參數的方式,到底是傳遞變數的位址還是傳遞變數的值;
1.1定義一個類別
class Penson{
public $age;
public $name;
}
//實例化一個物件
$zs=new Penson();
$zs->age=10;
1.2 分別定義一個字串,數字,陣列;
$str="string";
$num="0";
$myArray=(10,100,100);
1.3定義一個函數
funtion test($str,$num,$arr,$obj){
funtion test($str,$num,$arr,$obj){
="str ;
$num=100;
$arr[0]=0;
$obj->age="100";
}
執行函數後分別列印:
echo $str; // string
echo $num; // 0
echo $arr[0]; // 10
echo結論:字符,數字,數組以參數的形式傳入函數是複製一份值傳遞到函數裡面的,而對象則是把指向對象的地址傳遞進函數裡面,所以當函數執行完後,當前函數在內存的堆疊被回收,所以創建的變量也銷毀,所以不會影響到外面的變量,但是對象傳進去的是地址,在函數裡面修改的實際上是通過傳進來的地址去操作對象,對像不能直接訪問,只能透過位址的方式,所以函數裡面修改的物件在函數執行完畢後,其影響還在。
當然,如果你想其他類型的資料也像物件一樣,傳進函數的是地址,在函數修改外面的變量,這php也是可以做到的,只要傳參的時候這樣傳遞就可以了:
test(&$str,&$num,&$arr,$zs);
在變數前加上一個&符號,這樣不管哪個資料型,在函數裡面修改的都會影響到函數外面的變數。
2.mysqli_insert_id($con)
有時候我們insert into後需要知道當前insert的資料在資料庫中自動產生的id,這個時候就可以用mysqli_insert_id()方法了,該方法帶一個參數,該參數為執行inser的用的資料庫連接,如果不加上返回內容會出現警告,但是也會插入成功。
3.在php中視圖取得一個不存在的變數是可能會報錯,例如:$_POST["select"],如果select不存在,則會報錯,應該盡量用isset()方法判斷變數是否存在,然後再進行操作
4.用mysql建立表格的時候切記要設定編碼:
CREATE
TABLE
message(
CREATE
TABLE
message(
id
int
(10) auto_increment
PRIMARY
KEY
NOT
NULL
,
username
VARCHAR
(16)
NOT
NULL
,
message
VARCHAR
(32)
NOT
NULL
,
time
datetime
NOT
NULL
)
//下面这句是用来设置编码的,如果不设置可能会导致中文乱码在数据库中
ENGINE= MYISAM
CHARACTER
SET
utf8 ;
id
int
(10) auto_increment
PRIMARY
KEY
NOT
NULL,
username
VARCHAR
(16)
NOT
NULL
,
message
VARCHAR
(32)
NOT <code>NULL
,
time
datetime
NOT
NULL <code>)
🎜🎜//下面這句是用來設定編碼的,如果不設定可能會導致中文亂碼在資料庫中🎜🎜ENGINE= MYISAM
CHARACTER
SET
utf8 ;
🎜🎜
🎜
以上就介紹了php小筆記 函數傳值細節分析,包含了php,函數方面的內容,希望對PHP教學有興趣的朋友有幫助。 🎜
🎜
🎜