假設我們有一個名爲languages.txt文件,該文件具有以下內容:PHP:傳遞資源數據類型作爲參數傳遞給函數
AJAX HTML CSS JQUERY
這裏的PHP代碼閱讀上述文件:
<?php
function read ($fh2, $length) {
return (fread($fh2,$length));
}
$fh1 = fopen ('languages.txt', 'r') ;
echo read ($fh1, 7) ;
echo read ($fh1, 4) ;
?>
我們知道,在PHP中,局部變量是局部函數,全局變量在函數之外是可用的。
因此,考慮$ FH1作爲一個全局變量,$ FH2爲局部變量和兩個彼此獨立的我預期的輸出爲
AJAX HTAJAX
但是,在輸出出來是
AJAX HTMLç
任何人都可以解釋我發生了什麼?當resource
數據類型作爲參數傳遞給一個函數時,它是否通過引用傳遞,而不像int
數據類型?
它與本地/全局變量沒有任何關係 –
資源var是對外部資源的引用,因此無論它是原始資源var還是副本,它仍然是對外部資源的引用,在這種情況下,一個打開的文件。 – AbraCadaver