[英]How to converts the string to alternate upper and lower case in php (Laravel Zero)?
我正在研究 Laravel Zero 並創建了新命令,該命令將顯示用戶輸入以大寫和小寫形式顯示。
有沒有辦法同時顯示 output 交替大小寫?
這是命令:
class UppercaseCommand extends Command
{
/**
* The signature of the command.
*
* @var string
*/
protected $signature = 'converts';
/**
* The description of the command.
*
* @var string
*/
protected $description = 'Converts the string to uppercase, lowercase, and alternate';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$a = readline('Enter a string: ');
echo "Output in uppercase: " , strtoupper($a). PHP_EOL;
echo "Output in lowercase: " , strtolower($a);
}
/**
* Define the command's schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
public function schedule(Schedule $schedule): void
{
// $schedule->command(static::class)->everyMinute();
}
}
那么如何添加新行來顯示輸入,例如:“hElLo wOrLd”?
你可以在 laravel 中使用這個庫這里的例子來理解這個
這是使用它的簡單方法
$lower=Illuminate\Support\Str::lower($value);
$upper=Illuminate\Support\Str::upper($value);
答案:
$chars = str_split($a);
foreach($chars as $char){
if ($UpperLowerSwitch){
echo strtolower($char);
$UpperLowerSwitch = false;
}else {
echo strtoupper($char);
$UpperLowerSwitch = true;
}
}
輸出(如果用戶插入“hello world”):
hElLo wOrLd
如果您想要更短的版本,可以使用以下代碼:
$str = "stack overflow";
$arr = str_split($str);
$result = join(array_map(function($char, $i) {
return $i % 2 ? strtoupper($char) : strtolower($char);
}, $arr, array_keys($arr)));
// Result: "sTaCk oVeRfLoW"
這使用字符數組的索引( i % 2
是不均勻的索引)來更改大小寫。
將它包裝成一個漂亮的 function 名為unreadableCapitalization($str)
並完成它:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.