A. 請問php中類方法名後面括弧里參數是什麼意思呢如下
這個是參數默認值!
默認值的作用是在調用函數或方法的時候, 如果沒提供值, 則會調用參數默認值!
也就是說, 有默認值的函數或者方法, 參數可提供也可不提供!
反之, 必須提供, 不然會出錯!
B. 在PHP方法(或成員函數)上除了對象可作為參數限定類型外,還有什麼可作為參數限定類
如果你指的是在定義php函數(方法)時,對參數類型進行類型限定的話(類似C和DELPHI語言的強類型檢測定義的那種),那麼,據查閱資料,答案如下:
php只有數組和對象兩種限定類型。
PHP 5 可以使用類型約束。函數的參數可以指定只能為對象(在函數原型裡面指定類的名字),php 5.1 之後也可以指定只能為數組。
注意,即使使用了類型約束,如果使用NULL作為參數的默認值,那麼在調用函數的時候依然可以使用NULL作為實參。
C. 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歲了!
?>
D. 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;
}
}
不保證代碼的完全正確,但是思路是對的。
E. 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).
F. php類方法中參數問題,參數怎麼是一個類名 加上變數,怎麼理解
PHP5可以使用類型約束。函數的參數可以指定只能為對象(在函數原型裡面指定類的名字),PHP5.1之後也可以指定只能為數組。
註:PHP7之後可以指定int,string等。
代表方法baz()接收的亂喚參數是一個對象,並且指定必須是Test類實例化的對遲陪蔽象。
比如在後面加如下代碼就能正常輸出:string(5)"hello"
12345
$a=newTest(111);$a->baz($a);
但是如果換成如下代碼碼州:
classB{}
$b=newB();
$a=newTest(111);
$a->baz($b);
就會報錯:Catchablefatalerror:Argument1passedtoTest::baz()mustbeaninstanceofTest,instanceofBgiven
簡單意思就是:傳遞參數必須是實例化Test,你傳B的對象是不對的。
G. Php獲取參數的幾種方法
1.獲取地址欄參數:
$_SERVER['QUERY_STRING'];
2.獲取參數值
//post提交
用$_POST['參數名稱']獲取值
//get 提交
用$_GET['參數名稱']獲取值
//無論是post還是get方式提交都可以用$_REQUEST
用$_REQUEST['參數名稱']獲取值
H. 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會為每個遺漏的參數發出警告
可變函數:使用可變變數,可以基於變數的值調用函數
匿名函數:又叫閉包函數,允許臨時建立一個沒有指定名稱的函數,最經常用作回調函數參數的值。需要注意的是,在匿名函數內的變數的用法不同於全局變數,在匿名函數內的變數是一個閉包變數,另外,被調用閉包的作用域不必是相同的。