1

私はphpを初めて使用し、3つの文字列を連結しようとしています。そして、私がそうするならば、これはうまくいきます:

echo Test::getBaseUrl() , '/' , $append_url;

しかし、これはメソッド内で発生し、これを呼び出し先に返したいのですが、次のようreturnにではなく追加すると、次のechoようになります。

return Test::getBaseUrl() , '/' , $append_url;

次のようなエラーが発生します:

PHP Parse error:  syntax error, unexpected ',' in /home/ubuntu/Test.php on line 31

どこで間違いを犯しているのですか?

4

7 に答える 7

5

echoechoは言語構造であり、いくつかの「アクション」を連鎖させることができる特別な構文をサポートします。これの意味は

echo $a, $b;

実は

echo $a; echo $b;

(実際には少し異なりますが、それは重要ではありません)

あなたが本当に探しているのは連結です

echo $a . $b;

これは(これは通常の演算子であるため)文字列を処理できるすべてのもので機能します

return $a . $b;
于 2013-01-18T09:45:55.067 に答える
4

.での連結にこれを使用しますPHP

return Test::getBaseUrl() . '/' . $append_url;

囚人によって提案されたように

追加:エコー$ x、$ y、$ zで機能する理由は、基本的に複数のエコーを出力するコンマリストを渡すことができるためです(例echo $x; echo $y;)。

于 2013-01-18T09:44:39.057 に答える
2

は、プログラミング言語で文字列を結合するために使用されるとは思いません。

PHPでは、連結演算子(。)を使用して2つの文字列値をまとめます。

echo Test::getBaseUrl() . '/' . $append_url;

return Test::getBaseUrl() . '/' . $append_url;

参照:PHP文字列

于 2013-01-18T09:48:09.437 に答える
1

文字列にカンマが必要な場合:

 echo Test::getBaseUrl().','.'/'.', '.$append_url;
于 2013-01-18T09:48:44.387 に答える
1

あなたが使用しているとき、echo Test::getBaseUrl() , '/' , $append_url;あなたは実際に言っています

echo Test::getBaseUrl();
echo '/';
echo $append_url;

単一の文字列を作成する場合は、次の. 例を使用して3つの文字列を連結する必要があります。

return Test::getBaseUrl() . '/' . $append_url;
于 2013-01-18T09:48:55.763 に答える
1

PHP文字列の連結では、を使用します。

echo Test::getBaseUrl() . '/' . $append_url;
于 2013-01-18T09:45:08.153 に答える
1

言語構文通常の構文というキーワードを含むすべての答えは正しいですが、もう少し明確にするために:
関数は1つ以上の値を返すことはできません(そしてそれ以下ではありません...ある低レベルでは、関数つまり、関数の場合、次の行に沿って何かが定義されますreturn

function return($value)
{//written in PHP-style, obviously
    fwrite(php://stdout, $value, sizeof($value));
}

つまり、引数を1つだけ取る関数なので、多数の引数をコンマで区切るだけでは機能しません。

于 2013-01-18T09:55:55.957 に答える