-
list
-
lskdj fkjdf
-
a;skdjlasdjkf
echo "abc";
-
kjshdkfjh djf
-
kjh kjhk
<?php | |
$a = []; | |
//$s = 123456; | |
$s = 's6tbdfgj222dJGk'; | |
$rs = str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 10); | |
$numGen = function() { | |
return rand(1, 9999999); | |
}; |
<?php | |
$strs = []; | |
$s = str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 10); | |
$n = 100000; | |
for ($i = 0; $i < $n; $i++) { | |
$strs[$i] = substr(str_shuffle($s), 0, mt_rand(10, 100)); | |
} |
Igor Wiedler написал простенькую функцию retry, которая повторяет выполнение коллбека до получения успешного результата или достижения заданного количества неудач. При этом он использовал goto для реализации цикла. Когда его спросили, а почему goto, а не, скажем, рекурсия, он неожиданно очень подробно и интересно ответил. Ниже приводится перевод его ответа.
Конечно же, я рассматривал альтернативы goto
. Я очень подробно их изучил, и рад представить вам результаты.
Когда парсер PHP читает исходник, код компилируется в последовательность опкодов, которая затем будет выполнена движком Zend (tm) (r). Компилятор выполняет кое-какие оптимизации, но вообще он довольно тупой. Поэтому, в зависимости от написанного вами кода он будет генерировать разные опкоды. Это напрямую влияет на производительность.
Существует несколько способов написать цикл. Начнём с упомянутого вами — рекурсии.
function retry($retries, callable $fn)
List of JSON RPC client libraries in PHP available on GitHub.
https://github.com/fguillot/JsonRPC
- no transport injection (curl)
- no json options (json_encode, json_decode)
- no read timeout (no interface)
- returns raw result from
result
key andnull
on error - id = mt_rand() (no way to set custom)
<?php | |
// Test for one case: exploding string by space to two parts | |
function rand_str() { | |
return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, rand(10, 20)); | |
} | |
$strs = []; | |
for ($i = 0; $i < 100000; $i++) { |
<?php | |
// Source: https://github.com/yiisoft/yii2/blob/a2c483fc19a0d46dcefd5e97293cde55ee552ecf/framework/console/Markdown.php | |
/** | |
* @link http://www.yiiframework.com/ | |
* @copyright Copyright (c) 2008 Yii Software LLC | |
* @license http://www.yiiframework.com/license/ | |
*/ | |
namespace yii\console; |
.controller-wiki div.wiki { | |
font-family: Helvetica, Arial; | |
font-size: 14px; | |
line-height: 1.6; | |
background-color: #fff; | |
color: #333; | |
-webkit-font-smoothing: antialiased; | |
} | |
.controller-wiki div.wiki p { | |
margin: 1.2em 0; |
I hereby claim:
- I am ksimka on github.
- I am ksimka (https://keybase.io/ksimka) on keybase.
- I have a public key whose fingerprint is F6C3 5BF2 286F 1ED2 1650 C26F 39AC 04FC 4141 D525
To claim this, I am signing this object: