摘要:接下來就要引入一個(gè)概念,可變函數(shù)。這意味著如果一個(gè)變量名后有圓括號(hào),將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它。示例執(zhí)行命令行中輸出執(zhí)行命令行中輸出可變函數(shù)的語(yǔ)法來調(diào)用一個(gè)對(duì)象的方法。示例代碼來源可變函數(shù)轉(zhuǎn)載地址
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 中,有一個(gè) $isPage 的參數(shù)。本意是傳入 get 就是獲取全部數(shù)據(jù),paginate 就是分頁(yè)。寫完以后覺得哪里不對(duì)。在我們平常的寫法中,查找全部數(shù)據(jù) $this->model->orderBy($order, $sort)->get(); 是這樣的,我也未見過使用變量來替換 get() 的。在實(shí)際運(yùn)行中,程序正常執(zhí)行。隨后在論壇中詢問這種寫法。接下來就要引入一個(gè)概念,《可變函數(shù)》。
什么是可變函數(shù)?PHP 支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后有圓括號(hào),PHP 將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它。
了解了這個(gè)概念以后那么上述程序就可以講的通了。$isPage 在程序運(yùn)行中,替換為 get, 而 $isPage 后有一個(gè)圓括號(hào),那么程序就會(huì)尋找同名函數(shù)。進(jìn)而繼續(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ù)的語(yǔ)法來調(diào)用一個(gè)對(duì)象的方法。
$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
當(dāng)調(diào)用靜態(tài)方法時(shí),函數(shù)調(diào)用要比靜態(tài)屬性優(yōu)先。Variable 方法和靜態(tài)屬性示例。
Variable() reading $variable in this scope.
示例代碼來源 php 可變函數(shù)
轉(zhuǎn)載地址 lost in you
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28819.html
摘要:支持可變函數(shù)的概念??勺兒瘮?shù)可以用來實(shí)現(xiàn)包括回調(diào)函數(shù),函數(shù)表在內(nèi)的一些用途。注意可變函數(shù)不能用于例如,,,,,,以及類似的語(yǔ)言結(jié)構(gòu)。需要使用自己的包裝函數(shù)來將這些結(jié)構(gòu)用作可變函數(shù)??梢杂每勺兒瘮?shù)的語(yǔ)法來調(diào)用一個(gè)對(duì)象的方法。 php支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后面有圓括號(hào),php將尋找與變量的值同名的函數(shù),并且嘗試運(yùn)行它??勺兒瘮?shù)可以用來實(shí)現(xiàn)包括回調(diào)函數(shù),函數(shù)表在內(nèi)的一些用...
摘要:的語(yǔ)法和其它流程控制結(jié)構(gòu)相似部分允許設(shè)定代碼段的行為。返回值在失敗時(shí)返回并且發(fā)出警告。當(dāng)一個(gè)函數(shù)是有條件被定義時(shí),必須在調(diào)用函數(shù)之前定義。有條件的函數(shù)不能在此處調(diào)用函數(shù),因?yàn)樗€不存在,但可以調(diào)用函數(shù)。 流程控制 PHP 提供了一些流程控制的替代語(yǔ)法,包括 if,while,for,foreach 和 switch。替代語(yǔ)法的基本形式是把左花括號(hào)({)換成冒號(hào)(:),把右花括號(hào)(})分...
摘要:支持可變函數(shù)的概念。通常用在回調(diào)函數(shù)函數(shù)列表或者根據(jù)動(dòng)態(tài)參數(shù)來調(diào)用不同的函數(shù)。那么如何使用呢定義三個(gè)函數(shù)接下來就開始使用啦這一句就打印出如何傳入?yún)?shù)呢很簡(jiǎn)單這句代碼就打印出了那么如何用可變函數(shù)的語(yǔ)法來調(diào)用一個(gè)對(duì)象的方法呢其實(shí)與上面的類似。 PHP支持可變函數(shù)的概念。通常用在回調(diào)函數(shù)、函數(shù)列表或者根據(jù)動(dòng)態(tài)參數(shù)來調(diào)用不同的函數(shù)。 那么如何使用呢?
摘要:聲明靜態(tài)變量時(shí)不能用表達(dá)式的結(jié)果對(duì)其賦值正確錯(cuò)誤使用表達(dá)式的結(jié)果賦值錯(cuò)誤使用表達(dá)式的結(jié)果賦值靜態(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ù)列表,這個(gè)概念可能你會(huì)覺得很抽象。我們?cè)倏匆粋€(gè)示例以上例程會(huì)輸出可變數(shù)量參數(shù)將被傳遞到中,給定的數(shù)組會(huì)作為參數(shù)變量。 最近在讀 Laravel 源碼的時(shí)候,發(fā)現(xiàn)了一個(gè)段特別有趣的代碼,大家請(qǐng)看: showImg(https://segmentfault.com/img/remote/14600000...
閱讀 2823·2021-10-08 10:04
閱讀 3285·2021-09-10 11:20
閱讀 535·2019-08-30 10:54
閱讀 3328·2019-08-29 17:25
閱讀 2310·2019-08-29 16:24
閱讀 895·2019-08-29 12:26
閱讀 1453·2019-08-23 18:35
閱讀 1944·2019-08-23 17:53