30秒のPHPコードフラグメント(3)文字列-string&関数-Function
GitHubオープンソースプロジェクトから
点私ジャンプ
30秒のPHPコードフラグメント
選択した有用なPHPフラグメントセットは、30秒以上で理解できます.
文字列
endsWith
文字列が指定した接尾辞で終わるかどうかを判断し、指定した接尾辞で終わると
Examples
firstStringBetween
パラメータ
Examples
isAnagram
1つの文字列が別の文字列の変位元であるかどうかを確認します(大文字と小文字を区別せず、スペース、句読点、特殊文字を無視します).
いわゆる字なぞ
Examples
isLowerCase
指定された文字列が小文字である場合、
Examples
isUpperCase
指定された文字列が大文字である場合、
Examples
palindrome
指定された文字列が返信文である場合、
回文は、その名の通り、前から読むのと後ろから読むのとが等しい.
Examples
startsWith
文字列が固定子文字列で始まるかどうかを確認し、そうでなければ
Examples
countVowels
指定した文字列の母音数を返します.正規表現を使用して、文字列内の母音
Examples
decapitalize
文字列の最初のアルファベットを大文字にします.文字列の最初の文字を無頭化し、文字列の他の部分に加算します.
Examples
isContains
指定した文字列入力に単語またはサブ文字列が存在するかどうかを確認します.
Examples
関数#カンスウ#
compose
複数の関数を単一の呼び出し可能な関数に組み合わせた新しい関数を返します.
Examples
memoize
Examples
Curry(コリー化)
関数を彼に渡されたパラメータと組み合わせて,新しい関数を生成する.
Examples
once
1つの関数のみを呼び出すことができます.
Examples
variadicFunction(変長パラメータ関数)
変長パラメータ関数を使用すると、使用者は関数の可変数のパラメータを取得できます.関数は、任意の数の変数を受け入れてコードを実行します.
Examples
関連記事:30秒のPHPコードフラグメント(1)配列−Array 30秒のPHPコードフラグメント(2)数学−Math
点私ジャンプ
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'); // true
firstStringBetween
パラメータ
start
とend
の文字列の間の最初の文字列を返します.function firstStringBetween($haystack, $start, $end)
{
return trim(strstr(strstr($haystack, $start), $end, true), $start . $end);
}
Examples
firstStringBetween('This is a [custom] string', '[', ']'); // custom
isAnagram
1つの文字列が別の文字列の変位元であるかどうかを確認します(大文字と小文字を区別せず、スペース、句読点、特殊文字を無視します).
いわゆる字なぞ
function isAnagram($string1, $string2)
{
return count_chars($string1, 1) === count_chars($string2, 1);
}
Examples
isAnagram('fuck', 'fcuk'); // true
isAnagram('fuckme', 'fuckyou'); // false
isLowerCase
指定された文字列が小文字である場合、
true
を返し、そうでない場合、false
を返します.function isLowerCase($string)
{
return $string === strtolower($string);
}
Examples
isLowerCase('Morning shows the day!'); // false
isLowerCase('hello'); // true
isUpperCase
指定された文字列が大文字である場合、
true
を返します.そうでない場合、false
を返します.function isUpperCase($string)
{
return $string === strtoupper($string);
}
Examples
isUpperCase('MORNING SHOWS THE DAY!'); // true
isUpperCase('qUick Fox'); // false
palindrome
指定された文字列が返信文である場合、
true
を返し、そうでない場合、false
を返します.回文は、その名の通り、前から読むのと後ろから読むのとが等しい.
function palindrome($string)
{
return strrev($string) === (string) $string;
}
Examples
palindrome('racecar'); // true
palindrome(2221222); // true
startsWith
文字列が固定子文字列で始まるかどうかを確認し、そうでなければ
true
を返し、そうでなければfalse
を返します.function startsWith($haystack, $needle)
{
return strpos($haystack, $needle) === 0;
}
Examples
startsWith('Hi, this is me', 'Hi'); // true
countVowels
指定した文字列の母音数を返します.正規表現を使用して、文字列内の母音
(A, E, I, O, U)
の数を計算します.function countVowels($string)
{
preg_match_all('/[aeiou]/i', $string, $matches);
return count($matches[0]);
}
Examples
countVowels('sampleInput'); // 4
decapitalize
文字列の最初のアルファベットを大文字にします.文字列の最初の文字を無頭化し、文字列の他の部分に加算します.
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); // 20
memoize
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)); // 25
once
1つの関数のみを呼び出すことができます.
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)); // null
variadicFunction(変長パラメータ関数)
変長パラメータ関数を使用すると、使用者は関数の可変数のパラメータを取得できます.関数は、任意の数の変数を受け入れてコードを実行します.
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