簡體   English   中英

如何在 php(Laravel 零)中將字符串轉換為交替大小寫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM