文字列の先頭にテキストを追加するための。=のようなものがあるかどうか疑問に思っています。例:
$foo =. 'bar';
これは機能しません。
編集:例はもともと$foo =. $bar;で達成することができました$bar .= $foo;
$fooに$bar、代わりに前置するの$barに$foo。結果は似ていますが、彼は変異させたいと思います$foo。
文字列の先頭にテキストを追加するための。=のようなものがあるかどうか疑問に思っています。例:
$foo =. 'bar';
これは機能しません。
編集:例はもともと$foo =. $bar;で達成することができました$bar .= $foo;
$fooに$bar、代わりに前置するの$barに$foo。結果は似ていますが、彼は変異させたいと思います$foo。
回答:
あなたはいつでもそのための独自の関数を作ることができます:
function prepend($string, $chunk) {
if(!empty($chunk) && isset($chunk)) {
return $string.$chunk;
}
else {
return $string;
}
}
$stringあなたが先頭に追加したいとすることを作品になり$chunkますが、その上に先頭に追加何かをしたいというテキストになります。
チェックはオプションであると言えますが、チェックをそこに置くことで、誤ってnull値を渡すことを心配する必要はありません。
!empty常にある場合はisset、この二重チェックの必要はありません。さらに、$chunkは関数の必須パラメーターであるため、関数に渡す必要があります。そうしないと、PHPから文句が返されます。これは、このチェックを省略できることを意味します(これが「空」とも呼ばれる偽物if ($chunk)かどうかを確認するため)。ただし、何も含まれていない場合は、何も起こりません。したがって、この関数本体全体はに短縮できます。つまり、この関数全体がかなり不要です。$chunkreturn $string . $chunk
$foo . $bar。機能が何か異なる場合、重要なケースを見つけることをお勧めします。:)
私はこれが少し前に質問/回答されたことを知っていますが、割り当て演算子ではなく、一般的な文字列連結の使用法について誰もコメントしていませんが、機能的に同等であるため、この回答を提供します。
文字列連結のためのsprintf(ドキュメンテーション)ファミリーの関数の使用を調べたい場合があります。2つの文字列を代入演算子で組み合わせるだけの場合よりも、より多くのサニタイズと使いやすさが提供されます。
$foo = 'foo';
$append = sprintf('%1$s%2$s', $foo, 'bar');
var_dump($append);
/* string(6) "foobar" */
$prepend = sprintf('%1$s%2$s', 'bar', $foo);
var_dump($prepend);
/* string(6) "barfoo" */
$prependInvert = sprintf('%2$s%1$s', $foo, 'bar');
var_dump($prependInvert);
/* string(6) "barfoo" */
$wrap = sprintf('%2$s%1$s%2$s', $foo, 'bar');
var_dump($wrap);
/* string(6) "barfoobar" */
vsprintf配列を使用すると、個々の引数よりも値の位置を管理する方が簡単なので、通常はを使用します。
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */
また、値の配列を使用するとimplode、単純な文字列連結の結果の値のセットを簡単に作成できます。
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */
sprintf複数の言語で一般的に使用されています。sprintfそれをいつ使用するかについて、その場所と目的があります。例えば。複数の値のキャスト、またはを使用した複数の入力の強制により、必要sprintfなときに単純な連結よりも多くの機能が提供されます。3v4l.org/8PWilを参照してください。ただし、連結の完全な代替として使用しないでください。
組み込み関数をラップすることができますsubstr_replace。ここで、引数$ startおよび$ lengthを0に設定できます。これにより、$ stringの前に$ replacementが付加され、次のように結果が返されます。
function prepend(& $string, $prefix) {
$string = substr_replace($string, $prefix, 0, 0);
}
ヘルパー関数の使用例は次のとおりです。
$email_message = "Jonathan";
$appropriate_greeting = "Dear ";
prepend($email_message, $appropriate_greeting);
echo $email_message;
あなたが手続き型プログラミングに夢中なら、それはです。
$string = $prefix.$string;関数内で単純な操作を行うと、うまくいきます。