Ⅰ 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的幾種函數參數類型及一些特殊函數
給你整理如下:
默認參數:在函數聲明時給參數賦值,而且此默認參數只能在最後,調用時可不傳遞任何參數(若只有默認參數的情況下)
可變參數:一個函數可能需要可個可變數目的參數。在php中,提供了三個函數用於檢索函數中所傳遞的參數。func_get_args()返回一個提供提供給函數的所有參數的數組;func_num_args()返回提供給函數的參數數目;func_get_arg()返回一個來自參數的特定參數。具體如下:
$array = func_get_args();
$count = func_num_args();
$value = func_get_arg();
遺漏參數:當調用函數時,可以傳遞任意個參數給函數。當函數必要的參數沒有i被傳遞時,此參數值是空,並且PHP會為每個遺漏的參數發出警告
可變函數:使用可變變數,可以基於變數的值調用函數
匿名函數:又叫閉包函數,允許臨時建立一個沒有指定名稱的函數,最經常用作回調函數參數的值。需要注意的是,在匿名函數內的變數的用法不同於全局變數,在匿名函數內的變數是一個閉包變數,另外,被調用閉包的作用域不必是相同的。