① php構造函數傳遞值的問題
__construct($hostname)裡面的參數是構造函數的參數,只能在構造函數內部調用,
public $hostname;這是類的參數,整個類內部包括繼承類都可以調用
第二種的參數只能在構造函數中使用,而第一種,則將傳來的參數賦值給類的變數,所以第一種的hostname整個類內部的方法都可以使用$this->hostname來調用
② php怎麼傳遞二維數組做函數參數
function arr($arr){
foreach($arr as $value){
$ar[].="我是數組--".$value."<br>";
}
return $ar;
}
$arr_a=array(a,b,c,d);
$arr_b=arr($arr_a);//經過arr()處理後
print_r($arr_b);
③ php函數多個參數實現傳參任意順序
這個不行,因為本身就會有邏輯錯誤。比如:他怎麼知道。test(100)是$i,而不是$obj呢。也可能是第五個參數呢。要麼test方法判斷,要麼佔位。這個沒啥好辦法
④ PHP中形參和實參的參數傳遞
functionadd($a,$b){
echo$a+$b;
}
abc($c,$d);
其中 $a $b 是形參
$c $d 是實參
在php中 形參的個數和實參個數可以不一致。(實參可以比形參多,但是如果形參未默認值。布恩比實參少)
http://www.hu.com/question/23040402/answer/23438059
⑤ 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會為每個遺漏的參數發出警告
可變函數:使用可變變數,可以基於變數的值調用函數
匿名函數:又叫閉包函數,允許臨時建立一個沒有指定名稱的函數,最經常用作回調函數參數的值。需要注意的是,在匿名函數內的變數的用法不同於全局變數,在匿名函數內的變數是一個閉包變數,另外,被調用閉包的作用域不必是相同的。
⑥ php如何傳遞類參數
PHP類中,可能有多個屬性參數。當使用new創建一個對象的時候,可能需要完成初始化操作,需要從外邊傳遞參數進來。下面演示具體過程:
?php
class Test {
//定義私有變數name ,age
private $name, $age;
//構造函數,初始化的時候最先執行
public function __construct($name, $age) {
$this-
name = $name;
$this->age = $age;
}
public function showMsg() {
return "大家好,我叫".$this->name.";今年".$this->age."歲了!";
}
}
//定義參數
$name="網路知道";
$age=10;
//初始化類的時候傳遞參數
$te=new Test($name, $age);
echo $te->showMsg();
//輸出結果:大家好,我叫網路知道;今年10歲了!
?>
⑦ php能把函數名作為參數傳遞嗎
可以。方法主要介紹2種:
1.使用函數call_user_func()或者 call_user_func_array()
<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}
// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));
// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
2.php本身是支持可變函數的,如同javascript一樣:
例一:
function foo($function) {
$function(" World");
}
function bar($params) {
echo "Hello".$params;
}
$variable = 'bar';
foo($variable);
例二:
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>
⑧ PHP 類之間傳遞參數
1. 用繼承,B繼承A,其中A的mm方法裡面的參數k作為方法的返回值,這樣就可以給到A去使用了。
classBextendsA{
publicfunctiontt(){$k=$this->mm();}
}
2.在A類裡面實例化B類。
classA{
publicfunctiontt(){
$class=newB();
$k=$class->mm();
}
}
兩個方法的前提條件都是需要mm方法的k變數作為返回值,然後在A類調用的時候就可以得到這參數了。
3.將k參數儲存到A類的屬性中。
步驟大致和2方法差不多,也是要在tt方法裡面實例化B類,但是B類的mm方法改為:
publicfunctionmm()
{$this->k=$k;}
這樣就不用k為返回值了,然後在A類中這樣:
classA{
publicfunctiontt(){
$class=newB();
$class->mm();
$k=$class->k;
}
}
不保證代碼的完全正確,但是思路是對的。