摘要:返回給定字符串中的元音數。使用正則表達式來計算字符串中元音的數量。對字符串的第一個字母進行無頭化,然后將其與字符串的其他部分相加。使用查找字符串中第一個出現的子字符串的位置。相關文章秒的代碼片段數組秒的代碼片段數學
本文來自GitHub開源項目
點我跳轉
30秒的PHP代碼片段精選的有用PHP片段集合,您可以在30秒或更短的時間內理解這些片段。字符串 endsWith
判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回true,否則返回false。
function endsWith($haystack, $needle) { return strrpos($haystack, $needle) === (strlen($haystack) - strlen($needle)); }
Examples
endsWith("Hi, this is me", "me"); // truefirstStringBetween
返回參數start和end中字符串之間的第一個字符串。
function firstStringBetween($haystack, $start, $end) { return trim(strstr(strstr($haystack, $start), $end, true), $start . $end); }
Examples
firstStringBetween("This is a [custom] string", "[", "]"); // customisAnagram
檢查一個字符串是否是另一個字符串的變位元(不區分大小寫,忽略空格、標點符號和特殊字符)。
就是所謂的字謎
function isAnagram($string1, $string2) { return count_chars($string1, 1) === count_chars($string2, 1); }
Examples
isAnagram("fuck", "fcuk"); // true isAnagram("fuckme", "fuckyou"); // falseisLowerCase
如果給定字符串是小寫的,則返回true,否則返回false。
function isLowerCase($string) { return $string === strtolower($string); }
Examples
isLowerCase("Morning shows the day!"); // false isLowerCase("hello"); // trueisUpperCase
如果給定字符串為大寫,則返回true,否則返回false。
function isUpperCase($string) { return $string === strtoupper($string); }
Examples
isUpperCase("MORNING SHOWS THE DAY!"); // true isUpperCase("qUick Fox"); // falsepalindrome
如果給定字符串是回文,則返回true,否則返回false。
回文,顧名思義,即從前往后讀和從后往前讀是相等的
function palindrome($string) { return strrev($string) === (string) $string; }
Examples
palindrome("racecar"); // true palindrome(2221222); // truestartsWith
檢查字符串是否是以指定子字符串開頭,如果是則返回true,否則返回false。
function startsWith($haystack, $needle) { return strpos($haystack, $needle) === 0; }
Examples
startsWith("Hi, this is me", "Hi"); // truecountVowels
返回給定字符串中的元音數。使用正則表達式來計算字符串中元音(A, E, I, O, U)的數量。
function countVowels($string) { preg_match_all("/[aeiou]/i", $string, $matches); return count($matches[0]); }
Examples
countVowels("sampleInput"); // 4decapitalize
使字符串的第一個字母去大寫。對字符串的第一個字母進行無頭化,然后將其與字符串的其他部分相加。省略upperRest參數以保持字符串的其余部分完整,或將其設置為true以轉換為大寫。
function decapitalize($string, $upperRest = false) { return lcfirst($upperRest ? strtoupper($string) : $string); }
Examples
decapitalize("FooBar"); // "fooBar"isContains
檢查給定字符串輸入中是否存在單詞或者子字符串。使用strpos查找字符串中第一個出現的子字符串的位置。返回true或false。
function isContains($string, $needle) { return strpos($string, $needle); }
Examples
isContains("This is an example string", "example"); // true isContains("This is an example string", "hello"); // false函數 compose
返回一個將多個函數組合成單個可調用函數的新函數。
function compose(...$functions) { return array_reduce( $functions, function ($carry, $function) { return function ($x) use ($carry, $function) { return $function($carry($x)); }; }, function ($x) { return $x; } ); }
...為可變數量的參數,http://php.net/manual/zh/func...
Examples
$compose = compose( // add 2 function ($x) { return $x + 2; }, // multiply 4 function ($x) { return $x * 4; } ); $compose(3); // 20memoize
創建一個會緩存func結果的函數,可以看做是全局函數。
function memoize($func) { return function () use ($func) { static $cache = []; $args = func_get_args(); $key = serialize($args); $cached = true; if (!isset($cache[$key])) { $cache[$key] = $func(...$args); $cached = false; } return ["result" => $cache[$key], "cached" => $cached]; }; }
Examples
$memoizedAdd = memoize( function ($num) { return $num + 10; } ); var_dump($memoizedAdd(5)); // ["result" => 15, "cached" => false] var_dump($memoizedAdd(6)); // ["result" => 16, "cached" => false] var_dump($memoizedAdd(5)); // ["result" => 15, "cached" => true]curry(柯里化)
把函數與傳遞給他的參數相結合,產生一個新的函數。
function curry($function) { $accumulator = function ($arguments) use ($function, &$accumulator) { return function (...$args) use ($function, $arguments, $accumulator) { $arguments = array_merge($arguments, $args); $reflection = new ReflectionFunction($function); $totalArguments = $reflection->getNumberOfRequiredParameters(); if ($totalArguments <= count($arguments)) { return $function(...$arguments); } return $accumulator($arguments); }; }; return $accumulator([]); }
Examples
$curriedAdd = curry( function ($a, $b) { return $a + $b; } ); $add10 = $curriedAdd(10); var_dump($add10(15)); // 25once
只能調用一個函數一次。
function once($function) { return function (...$args) use ($function) { static $called = false; if ($called) { return; } $called = true; return $function(...$args); }; }
Examples
$add = function ($a, $b) { return $a + $b; }; $once = once($add); var_dump($once(10, 5)); // 15 var_dump($once(20, 10)); // nullvariadicFunction(變長參數函數)
變長參數函數允許使用者捕獲一個函數的可變數量的參數。函數接受任意數量的變量來執行代碼。它使用for循環遍歷參數。
function variadicFunction($operands) { $sum = 0; foreach($operands as $singleOperand) { $sum += $singleOperand; } return $sum; }
Examples
variadicFunction([1, 2]); // 3 variadicFunction([1, 2, 3, 4]); // 10
相關文章:
30秒的PHP代碼片段(1)數組 - Array
30秒的PHP代碼片段(2)數學 - Math
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30137.html
摘要:本文來自開源項目點我跳轉秒的代碼片段精選的有用片段集合,您可以在秒或更短的時間內理解這些片段。檢查提供的整數是否是素數。約等于檢查兩個數字是否近似相等。否則,返回該范圍內最近的數字。相關文章秒的代碼片段數組秒的代碼片段字符串函數 本文來自GitHub開源項目 點我跳轉 30秒的PHP代碼片段 showImg(https://segmentfault.com/img/bVbnR1I?w=...
摘要:排列如果所提供的函數返回的數量等于數組中成員數量的總和,則函數返回,否則返回。平鋪數組將數組降為一維數組根據給定的函數對數組的元素進行分組。使用給定的回調篩選數組。相關文章秒的代碼片段數學秒的代碼片段字符串函數 本文來自GitHub開源項目 點我跳轉 30秒的PHP代碼片段 showImg(https://segmentfault.com/img/bVbnR1I?w=2800&h=12...
摘要:所以,我們可以將理解為計時結束是執行任務的必要條件,但是不是任務是否執行的決定性因素。的意思是,必須超過毫秒后,才允許執行。 先來回答一下下面這個問題:對于 setTimeout(function() { console.log(timeout) }, 1000) 這一行代碼,你從哪里可以找到 setTimeout 的源代碼(同樣的問題還會是你從哪里可以看到 setInterval 的...
摘要:理解元編程和是屬于元編程范疇的,能介入的對象底層操作進行的過程中,并加以影響。元編程中的元的概念可以理解為程序本身。中,便是兩個可以用來進行元編程的特性。在之后,標準引入了,從而提供比較完善的元編程能力。 導讀 幾年前 ES6 剛出來的時候接觸過 元編程(Metaprogramming)的概念,不過當時還沒有深究。今天在應用和學習中不斷接觸到這概念,比如 mobx 5 中就用到了 Pr...
摘要:的編譯構建上一篇文章詳解中介紹了基于事件流編程,是個高度的插件集合,整體介紹了的編譯流程。本文將單獨聊一聊最核心的部分,編譯構建。的編譯重要的構建節點的構建中總會經歷如下幾個事件節點。 webpack的編譯&構建 上一篇文章webpack詳解中介紹了webpack基于事件流編程,是個高度的插件集合,整體介紹了webpack 的編譯流程。本文將單獨聊一聊最核心的部分,編譯&構建。 web...
閱讀 3514·2023-04-25 17:35
閱讀 2588·2021-11-24 09:39
閱讀 2525·2021-10-18 13:32
閱讀 3409·2021-10-11 10:58
閱讀 1630·2021-09-26 09:55
閱讀 6134·2021-09-22 15:47
閱讀 959·2021-08-26 14:15
閱讀 3466·2019-08-30 15:55