摘要:接下來就要引入一個概念,可變函數(shù)。這意味著如果一個變量名后有圓括號,將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它。示例執(zhí)行命令行中輸出執(zhí)行命令行中輸出可變函數(shù)的語法來調用一個對象的方法。示例代碼來源可變函數(shù)轉載地址
PHP 可變函數(shù)
先將我的偽代碼寫上。
protected $model; public function __construct(Category $category) { $this->model = $category; } public function getLists($request, $isPage = "get", $order = "created_at", $sort = "desc") { return $this->model->orderBy($order, $sort)->$isPage(); }
在 getLists 中,有一個 $isPage 的參數(shù)。本意是傳入 get 就是獲取全部數(shù)據(jù),paginate 就是分頁。寫完以后覺得哪里不對。在我們平常的寫法中,查找全部數(shù)據(jù) $this->model->orderBy($order, $sort)->get(); 是這樣的,我也未見過使用變量來替換 get() 的。在實際運行中,程序正常執(zhí)行。隨后在論壇中詢問這種寫法。接下來就要引入一個概念,《可變函數(shù)》。
什么是可變函數(shù)?PHP 支持可變函數(shù)的概念。這意味著如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它。
了解了這個概念以后那么上述程序就可以講的通了。$isPage 在程序運行中,替換為 get, 而 $isPage 后有一個圓括號,那么程序就會尋找同名函數(shù)。進而繼續(xù)執(zhí)行。
示例:
"; } function bar($arg = "") { echo "In bar(); argument was "$arg".
"; } $func = "foo"; $func(); // 執(zhí)行 foo(); 命令行中輸出:In foo()
$func = "bar"; $func("test"); // 執(zhí)行 bar();命令行中輸出:In bar(); argument was "test".
可變函數(shù)的語法來調用一個對象的方法。
$name(); // This calls the Bar() method } function Bar() { echo "This is Bar"; } } $foo = new Foo(); $funcname = "Variable"; $foo->$funcname(); // This calls $foo->Variable() // 命令行執(zhí)行輸出: This is Bar
當調用靜態(tài)方法時,函數(shù)調用要比靜態(tài)屬性優(yōu)先。Variable 方法和靜態(tài)屬性示例。
Variable() reading $variable in this scope.
示例代碼來源 php 可變函數(shù)
轉載地址 lost in you
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://hztianpu.com/yun/28819.html
摘要:支持可變函數(shù)的概念??勺兒瘮?shù)可以用來實現(xiàn)包括回調函數(shù),函數(shù)表在內的一些用途。注意可變函數(shù)不能用于例如,,,,,,以及類似的語言結構。需要使用自己的包裝函數(shù)來將這些結構用作可變函數(shù)。可以用可變函數(shù)的語法來調用一個對象的方法。 php支持可變函數(shù)的概念。這意味著如果一個變量名后面有圓括號,php將尋找與變量的值同名的函數(shù),并且嘗試運行它??勺兒瘮?shù)可以用來實現(xiàn)包括回調函數(shù),函數(shù)表在內的一些用...
摘要:的語法和其它流程控制結構相似部分允許設定代碼段的行為。返回值在失敗時返回并且發(fā)出警告。當一個函數(shù)是有條件被定義時,必須在調用函數(shù)之前定義。有條件的函數(shù)不能在此處調用函數(shù),因為它還不存在,但可以調用函數(shù)。 流程控制 PHP 提供了一些流程控制的替代語法,包括 if,while,for,foreach 和 switch。替代語法的基本形式是把左花括號({)換成冒號(:),把右花括號(})分...
摘要:支持可變函數(shù)的概念。通常用在回調函數(shù)函數(shù)列表或者根據(jù)動態(tài)參數(shù)來調用不同的函數(shù)。那么如何使用呢定義三個函數(shù)接下來就開始使用啦這一句就打印出如何傳入?yún)?shù)呢很簡單這句代碼就打印出了那么如何用可變函數(shù)的語法來調用一個對象的方法呢其實與上面的類似。 PHP支持可變函數(shù)的概念。通常用在回調函數(shù)、函數(shù)列表或者根據(jù)動態(tài)參數(shù)來調用不同的函數(shù)。 那么如何使用呢?
摘要:聲明靜態(tài)變量時不能用表達式的結果對其賦值正確錯誤使用表達式的結果賦值錯誤使用表達式的結果賦值靜態(tài)變量與遞歸函數(shù)靜態(tài)變量提供了一種處理遞歸函數(shù)的方法。 一、變量的定義 1. 變量的命名規(guī)則 變量名可以包含字母、數(shù)字、下劃線,不能以數(shù)字開頭。 $Var_1 = foo; // 合法 $var1 = foo; // 合法 $_var1 = foo; // 合法 $Var-1 = foo; /...
摘要:是用戶自定義函數(shù)中支持可變數(shù)量的參數(shù)列表。在及更早版本中,使用函數(shù),,和??勺償?shù)量的參數(shù)列表,這個概念可能你會覺得很抽象。我們再看一個示例以上例程會輸出可變數(shù)量參數(shù)將被傳遞到中,給定的數(shù)組會作為參數(shù)變量。 最近在讀 Laravel 源碼的時候,發(fā)現(xiàn)了一個段特別有趣的代碼,大家請看: showImg(https://segmentfault.com/img/remote/14600000...
閱讀 2915·2021-10-08 10:04
閱讀 3387·2021-09-10 11:20
閱讀 592·2019-08-30 10:54
閱讀 3451·2019-08-29 17:25
閱讀 2384·2019-08-29 16:24
閱讀 984·2019-08-29 12:26
閱讀 1542·2019-08-23 18:35
閱讀 2094·2019-08-23 17:53