ホームページ > php教程 > php手册 > 変数の変数、PHP とあなた

変数の変数、PHP とあなた

WBOY
リリース: 2016-06-21 09:09:39
オリジナル
1567 人が閲覧しました

変数

最近取り組んだプロジェクトで、PHP での変数の使用に関する新しい概念を発見しました。私のプログラムでは、1 ページ上の複数のレコードを同時に更新する必要がありました。長い間考え続けた後、偶然変数の概念が頭に浮かび、すべての混乱が消え去りました。

<b>はじめに</b>

変数と呼ばれる変数とは何ですか? PHPのマニュアルによると、変数とは、変数の値を取得し、それを別の変数の変数名として使用する変数です。このステートメントは非常に単純に見えるため、文中で「変数」という単語を使用するステートメントと簡単に混同されます。簡単な例を挙げると、変数を定義します --- x はこれに等しい --- 次に、変数の変数を定義します。つまり、この例では、x の値を新しい変数の名前として使用します。この新しい変数の値は、cake です。 PHP で表現すると、

<?php

$x = "this";

?>

PHP の表示メソッドでは、変数に $$ という記号が使用されます。これで、2 つの変数 $x と $$x を 2 つの異なる方法で参照できるようになります。

<?php

echo "$x ${$x}";


echo "$x $this"?>

上記の2つのプログラムはどちらも「this iscake」と出力します。 echo ステートメントでは $$x が ${$x} として記述されていることに注意してください。これは、出力したいのは $ 文字と $x 変数ではなく変数であることを PHP に知らせるためです。

まだ混乱していますか?ああ、もしかしたら、もっと詳しくて役立つ例が必要ですか?次のセクションでは、変数を使用して 1 ページ上の複数のレコードを編集する方法を説明します。


関心のあるサイトへのリンクを保存する MySQL データベースが既にあり、次のフィールドを持つテーブル送信があるとします。承認済み

ここで、作成済みだが承認されていないすべてのリンクをテーブルに表示したいとします。編集ページでは、いくつかの入力エラーを修正し、適切なラジオ ボタンを使用して (承認済み) を許可するかどうかを設定できます。各レコード)、更新されたすべてのレコードを一度にテーブルに送信します。

まず、データベースからすべてのレコードを抽出して表示するときに、各レコードに一意の名前を設定する必要があります。これにより、送信時にループ内で各レコードの値を識別できるようになります。コードは次のとおりです:


//変数カウンターを初期化します

$index = 0;

echo "

n"; echo "n";
echo ""
$SubmissionIDStr = PostedBy.$index;
$DescriptionStr = 説明.$index; = Aprroved.$index;
//このセクションでは、1 行に 1 レコードずつ値が画面に表示されます。

printf("<tr><td><入力タイプ=隠し名=%s 値=%s><入力タイプ=テキスト名=%s 値=%s></td>
<td><入力タイプ=テキスト名=%s 値=%s></td>
投稿者 リンク $SubmissionIDStr, $myrow["SubmissionID"], $PostedByStr, $myrow[" PostedBy"], $LinkStr, $myrow["Link"],
$DescriptionStr, $myrow["Description"], $ApprovedStr, $ApprovedStr);


//ループカウンターごとに 1 増やします

$index++;
$index_count++;

} while ($myrow = mysql_fetch_array($result));

// レコード数を追跡するインデックスカウンターindex_countを作成します

echo " ;n";

echo "n";

?>>

送信後、$index_count 変数を使用してページ上のすべての変数を再度ループし、これらの変数を他の変数に割り当てます。これにより、変数の変数が使用されます。

<?php

//このループはすべてのページに表示されているレコードを走査します

for ($index = 0; $index

/*****
この部分では、前に作成した名前で新しい変数を設定します
0 から始まり $index_count までの値になります
*****/

$varSubmissionID = 'SubmissionID'.$index;
$varLink = 'Link'.$index;
$varApproved = '承認済み'.$index;
/******
これは変数の変数部分であり、各値を各新しい変数の名前に割り当てます。
たとえば、最初のループでは、レコード SubmissionID0 に割り当てられた値は、変数を使用して取得します。
*******/
$SubmissionIDvalue = $$varPostedBy;
$Linkvalue = $$varDescription; = $$varApproved;


//データベースを更新します

$sql = "UPDATE 投稿 SET PostedBy='$PostedByvalue',Link='$Linkvalue',"
"Description='$Descriptionvalue' WHERE SubmissionID=$SubmissionIDvalue '";
$result = mysql_query($sql);


//このレコードが承認済みに設定されている場合は、対応するフィールド承認済みを更新します。

if ($Approvedvalue == '-1') {
$sql = "UPDATE submits SET Approved='-1' WHERE SubmissionID=$SubmissionIDvalue";
$result = mysql_query($sql);

?>

この変数の基本的な使用法を理解し、今後の作業で使用するためのアイデアが得られることを願っています。変数の変数という概念は最初は頭を悩ませるものでしたが、その仕組みの基本を理解すれば、おいしいピザになります。ご質問がございましたら、お知らせください。









関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート