<?php mt_srand( 1234 );
// Arrange
$input = [];
for ($i = 0; $i < 10; $i++ ) {
$input[] = wfRandomString( 5 );
}
// Act
$map = [];
foreach ( $input as $str ) {
$map[$str] = 'something computed something';
}
$output = [];
foreach ( $map as $str => $somthing ) {
$output[] = $str;
}
// Assert
foreach ( $output as $str ) {
if ( !is_string( $str ) ) {
echo "WAT: "; var_dump( $str );
} else {
echo "OK: "; var_dump( $str );
}
}
echo json_encode( $output, JSON_PRETTY_PRINT );
// -------
/** From MediaWiki 1.35 - https://w.wiki/oyY */
function wfRandomString( $length ) : string {
$str = '';
for ( $n = 0; $n < $length; $n += 7 ) {
$str .= sprintf( '%07x', mt_rand() & 0xfffffff );
}
return substr( $str, 0, $length );
}
- Output for 7.3.0 - 7.3.25, 7.4.0 - 7.4.13, 8.0.0
- OK: string(5) "883b5"
OK: string(5) "fb371"
OK: string(5) "fa142"
OK: string(5) "8aeee"
WAT: int(80776)
OK: string(5) "e59ae"
OK: string(5) "486a1"
OK: string(5) "2bbeb"
OK: string(5) "3d63f"
OK: string(5) "e2a6d"
[
"883b5",
"fb371",
"fa142",
"8aeee",
80776,
"e59ae",
"486a1",
"2bbeb",
"3d63f",
"e2a6d"
]
preferences:
71.82 ms | 402 KiB | 46 Q