導航:首頁 > 編程語言 > php函數可變參數

php函數可變參數

發布時間:2022-07-04 02:47:53

php函數的簡介

用戶自定義函數一個函數可由以下的語法來定義: <?phpfunction foo($arg_1, $arg_2, ..., $arg_n){ echo "Example function./n"; return $retval;}?>任何有效的 php 代碼都有可能出現在函數內部,甚至包括其它函數和類定義。
在 php 3 中,函數必須在被調用之前定義。而 php 4 則不再有這樣的條件。除非函數如以下兩個範例中有條件的定義。
如果一個函數以以下兩個範例的方式有條件的定義,其定義必須在調用之前完成。 <?phpfunction foo(){ function bar() { echo "I don't exist until foo() is called./n"; }}/* We can't call bar() yet since it doesn't exist. */foo();/* Now we can call bar(), foo()'s processesing has made it accessable. */bar();?>php 中的所有函數和類都具有全局域,可以在內部定義外部調用,反之亦然。
php 不支持函數重載,也不可能取消定義或者重定義已聲明的函數。
注:函數名是非大小寫敏感的,不過在調用函數的時候,通常使用其在定義時相同的形式。
php 3 雖然支持默認參數(更多信息請參照默認參數的值),但是卻不支持可變的參數個數。php 4 支持:見可變長度的參數列表和涉及到的相關函數func_num_args(),func_get_arg(),以及func_get_args()以獲取更多的信息。
在 php 中可以調用遞歸函數。但是要避免遞歸函數/方法調用超過 100-200 層,因為可能會破壞堆棧從而使當前腳本終止。 sys_getloadavt()可以獲得系統負載情況。該函數返回一個包含三個元素的數組,每個元素分別代表系統再過去的1、5和15分鍾內的平均負載。
與其讓伺服器因負載過高而宕掉,不如在系統負載很高時主動die掉一個腳本,sys_getloadavg()就是用來幫你實現這個功能的。不過很遺憾,該函數在windows下無效。 在發送頁面前先看看用戶的瀏覽器都能做些什麼是不是挺好?get_browser()能獲得用戶的瀏覽器類型,以及瀏覽器支持的功能,不過首先你需要一個php_browscap.ini文件,用來給函數做參考文件。
要注意,該函數對瀏覽器功能的判斷是基於該類瀏覽器的一般特性的。例如,如果用戶關閉了瀏覽器對JavaScript的支持,函數無法得知這一點。但是在判斷瀏覽器類型和OS平台方面,該函數還是很准確的。 glob()會讓你覺得用opendir(), readdir()和closedir()來尋找文件非常蠢。

Ⅱ PHP改變傳入參數的值

function add (&$a){
$a++;
}
$a=1;
add($a);
echo $a; // 這里就等於2 至於怎麼組合使用你自己看著辦

Ⅲ 2. 下列哪項不支持 php 函數的功能。()a 可變的參數個數b 通過引用傳

php函數的參數個數必須是確定的,當然你引用函數的時候,如果有的參數是有默認值的,可以不用將他們寫上
function test($a,$b=array()){
}
你引用的時候可以
test('1',array(1,2,3));
也可以
test('1');
但其實test的函數參數個數是確定的

Ⅳ JS與PHP向函數傳遞可變參數的區別實例代碼

#
JS
調用函數傳遞可變參數的方法
復制代碼
代碼如下:
<script>
function
test()
{

for(var
i
=
0;i
<
arguments.length;
i++)
{

alert(arguments[i]);
}
}
//調用函數
test(1,
2,
3,
'abc');
</script>
#
PHP
調用函數傳遞可變參數的方法
復制代碼
代碼如下:
<?php
//方法一
//接收一系列參數,並逐一輸出
function
show_params
()
{
//獲取傳遞參數的個數
$count
=
func_num_args();
//遍歷參數並逐一輸出
for
($i
=
0;
$i
<
$count;
$i++)
{
//獲取參數
$param
=
func_get_arg($i);
echo
$param
.
PHP_EOL;
}
}
//調用函數
show_params(1,
2,
'apple',
3.14);
//方法2
function
show_params
()
{
//定義存儲傳遞參數的數組
$params
=
array();
//獲取全部參數
$params
=
func_get_args();
$count
=
count($params);
//遍歷並逐一輸出參數
for
($i
=
0;
$i
<
$count;
$i++)
{
echo
$params[$i];
echo
PHP_EOL;
}
}
//注:
方法2比方法1執行的慢一些

Ⅳ 什麼是PHP中可變變數以及如何應用

有時候可變的變數名會給編程帶來很大的方便。也就是說變數名可以被動態的命名和使用。通常變數通過下面這樣的語句來命名<?php 可變變數名指的是使用一個變數的值作為這個變數的名稱。在上面的例子中,通過使用兩個$符號,你可以把hello設置成一個變數的名稱,就像下面那樣。<?php 通過上面的兩個語句,有兩個變數被定義:變數$a,裝的內容是hello 以及變數$hello,裝的內容是 world。 於是,下面的語言:<?php 跟下面的語句的輸出完全一致:<?php 它們都輸出:hello world。 為了使用數組的可變變數名,你需要解決一個歧義問題。就是,如果你寫$$a[1],解析器需要明白究竟你的意思是要把$a[1]當成一個變數,還是要把$$a當成變數、[1]指的是這個變數的索引。解決這個歧義問題的語法是:第一種情況使用${$a[1]},第二種情況使用${$a}[1]。 類屬性也可以通過可變屬性名來訪問。可變屬性名從產生調用所在的變數的訪問范圍內獲取。例如,如果你的表達式是這樣的:$foo-$bar,那麼運行時將會在本地變數范圍內尋找變數$bar,它的值將會做為$foo對象的一個屬性名。如果$bar是個數組也可以使用。 例1 可變變數名<?php class foo { var $bar = 'I am bar.';} $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); 上面的例子將會輸出下面的結果:I am bar. 請注意,可變變數名不能用於PHP函數和類里的超級全局數組變數上。

Ⅵ php函數設定參數類型

php 函數的參數類型可以指定為類名或數組類型array,比如
這樣是對的public function Right( My_Class $a, array $b )
這樣是錯的public function Wrong( string $a, boolean $b )

如果需要其他類型,需要在函數內部進行類型檢查
參考
http://www.php.net/manual/zh/functions.arguments.php
這一段
public function Right( My_Class $a, array $b )

tells first argument have to by object of My_Class, second an array. My_Class means that you can pass also object of class that either extends My_Class or implements (if My_Class is abstract class) My_Class. If you need exactly My_Class you need to either make it final, or add some code to check what $a really.

Also note, that (unfortunately) "array" is the only built-in type you can use in signature. Any other types i.e.:

public function Wrong( string $a, boolean $b )

will cause an error, because PHP will complain that $a is not an *object* of class string (and $b is not an object of class boolean).

So if you need to know if $a is a string or $b bool, you need to write some code in your function body and i.e. throw exception if you detect type mismatch (or you can try to cast if it's doable).

Ⅶ 怎樣用php輸出a標簽,且帶有可變參數

echo '<li><a href="ruirong.php ?id=$abc">'.$row['zbt'].'</span></a></li>';
只要在雙引號里就能解析變數,像你原先那個,就會變成$id=$abc,變成了字元串
可能不太好理解,直接取前面這一段 '<li><a href="ruirong.php ?id="$abc"">'
你先去掉單引號 <li><a href="ruirong.php ?id="$abc"">,如果你的編輯器有顏色區分的話,你可以看到$abc,是變數的顏色,那是因為"ruirong.php ?id="和"",被當做一對雙引號,然後你外面又有一層單引號,$abc就變成字元串了。

Ⅷ php 可變參數如何向內傳遞

這個涉及到了php7+的新特性,和一種獲取參數的方式,兩種方法,個人推薦php7的新特性方式。

PHP 7 增加了對返回類型聲明的支持。 類似於參數類型聲明,返回類型聲明指明了函數返回值的類型。可用的類型與參數聲明中可用的類型相同。如下:

<?php
functionsumOfInts(int...$ints)
{
returnarray_sum($ints);
}
var_mp(sumOfInts(2,3,4));

以上程序會輸出:
int(9)

還有一種方式,使用func_get_args(),如下:

<?php
functionfoo()
{
$arg_list=func_get_args();
echo$arg_list[0]." ";//第一個參數
echo$arg_list[1]." ";//第二個參數
echo$arg_list[2]." ";//第三個參數
}

foo(1,2,3);
?>
以上常式會輸出:
1
2
3

Ⅸ PHP的幾種函數參數類型及一些特殊函數

給你整理如下:

$array = func_get_args();

$count = func_num_args();

$value = func_get_arg();

閱讀全文

與php函數可變參數相關的資料

熱點內容
編譯程序輸入一個字元串 瀏覽:402
圓命令畫法 瀏覽:303
如果給電腦e盤文件加密 瀏覽:801
javaswing項目 瀏覽:774
androidsdksetup 瀏覽:1003
pdf怎麼設置中文 瀏覽:126
安卓手機用什麼軟體看倫敦金 瀏覽:962
魅族文件夾無名稱 瀏覽:789
蘇黎世無人機演算法 瀏覽:872
核桃編程和小碼王的融資 瀏覽:684
微積分教材pdf 瀏覽:725
寫python給微信好友發消息 瀏覽:336
蚊帳自營米加密 瀏覽:418
學校推薦核桃編程 瀏覽:804
湖南農信app怎麼導明細 瀏覽:471
福特abs編程 瀏覽:508
如何自學安卓手機 瀏覽:439
以太坊源碼共識機制 瀏覽:910
單片機探測器 瀏覽:872
demo編程大賽作品怎麼運行 瀏覽:51