0

より複雑な行のリストなどから盗んだいくつかの要素から単純なリストを作成しようとしていますが、カンマで区切られた単一の行に値をリストするだけです。

<?php foreach ($document_items as $document_item)
                {
                    if ($document_item->document_id == $document->id)
                            {
                                    if (nbf_common::nb_strlen($document_item->product_code) > 0)
                                    {
                                    echo nbf_common::nb_strlen($document_item->product_code);
                                    } 
                            ;}  ?> 
                ;} ?>

                    <?php  } ?>

私が得る結果は次のとおりです "3 ;} ?> 3 ;} ?> 4 ;} ?> 3 ;} ?> "

前もって感謝します

ミカ

4

4 に答える 4

3

これを試して

<?php
foreach ($document_items as $document_item)
                {
                    if ($document_item->document_id == $document->id)
                            {
                                    if (nbf_common::nb_strlen($document_item->product_code) > 0)
                                    {
                                        echo nbf_common::nb_strlen($document_item->product_code);
                                    } 
                            } 
                } 


?>

詳細はこちらPHPタグ

于 2012-05-20T11:24:55.033 に答える
2

Change the #9, #10, remove #11 line. What you're doing is printing characters: ;} ?> and are syntactically wrong. This is proper:

<?php foreach ($document_items as $document_item)
{
    if ($document_item->document_id == $document->id)
    {
        if (nbf_common::nb_strlen($document_item->product_code) > 0)
        {
            echo nbf_common::nb_strlen($document_item->product_code);
        } 
    } // here
} // here
?>

Also for the "comma separated" part, put required values in a variable and echo it at the end. Could be like this:

<?php
$string = '';
foreach ($document_items as $document_item)
{
    if ($document_item->document_id == $document->id)
    {
        if (nbf_common::nb_strlen($document_item->product_code) > 0)
        {
            $string .= nbf_common::nb_strlen($document_item->product_code).',';
        } 
    }
}

echo rtrim($string, ','); // remove the last comma
?>

or use a temp array to glue them at the end:

<?php
$lines = array();
foreach ($document_items as $document_item)
{
    if ($document_item->document_id == $document->id)
    {
        if (nbf_common::nb_strlen($document_item->product_code) > 0)
        {
            $lines[] = nbf_common::nb_strlen($document_item->product_code);
        } 
    }
}

echo implode(',', $lines); // bind them with comma
?>
于 2012-05-20T11:41:10.180 に答える
1

余分な をすべて持っている理由がわかりません?>。パターンは次のとおりです。

<?php

// PHP code goes here

?>

つまり、すべて<?phpに一致する?>; それ以上でもそれ以下でもありません。1


1. @Mihai が下のコメントで指摘しているケース以外...

于 2012-05-20T11:22:32.513 に答える
0

php タグを理解するには、HTML ファイル内にいて、HTML フローを次のように中断していると考えてください。

PHP のみのファイル (クラス、インターフェイス、関数の特性リスト、およびテンプレートを使用しない同様のアプリケーション コードのグループ) を作成する場合は、ファイルの最初の文字で開き、ファイルをまったく終了しないようにすることをお勧めします。

ただし、テンプレート ファイルを作成する場合は、php の代替構文を使用することをお勧めします。

<?php if($x): ?>
<?php elseif($y): ?>
<?php else: ?>
<?php endif; ?>

標準の代わりに:

<?php if($x) { ?>
<?php } else if($y) { ?>
<?php } else { ?>
<?php } ?>
于 2012-05-20T11:31:44.390 に答える