これらの PHP の概念の中には、最初は理解するのが難しいものもあります。一部の人を助け、今後の困難を軽減することを願って、それらをすべてリストします。
1.変数変数
variable_variables.php
$$a をエコーします。'
';
$b = 'ジョン';
$c = 'メアリー';
$e = 'ジョー';
$students = array('b','c','e');
echo ${$students[1]};
/*
foreach($students as $seat){
echo $$seat.'
';
}
$$var[1]
$ {$var[1]} #1
*/
$a = 'こんにちは';
変数 $a に hello を代入すると、$$a = ${hello} = $hello = 'こんにちは';
$$students[1] の場合、これは混乱を引き起こし、'[' には上位の演算子があるにもかかわらず、結果が出力されない可能性があります。
良い書き方は次のとおりです: ${$students[1]} = 'Mary';
2. 配列の関数
array_functions.php
shift & unshift
';// インデックスはリセットされます
$a = array_shift($numbers);
print_r($numbers);
// 配列のカウントを返し、配列のインデックスをリセットします
$b = array_unshift($numbers, 'first');
echo '
b: '.$ b.'
';
print_r($numbers);
echo '
pop & Push
';$d = array_push($numbers, 'last');
echo 'd: '.$d.'
';
3. 日付と時刻 (時刻と日付)
UNIX 時間 (1970/1/1 から現在までの秒数) を作成するには 3 つの方法があります
time() は現在のタイムスタンプを返します
mktime ($hr, $min, $sec, $month, $day, $year); mktime(6,30,0,5,22,2012) は、2012 5/22 6:30:00 のタイムスタンプを返します
strtotime ($string); strtotime("+1 day") 明日のこの時刻のタイムスタンプを返します。 'lasy Year'
checkdate($month, $day, $year); (5,32,2012) ? 'true' : 'false'; // return false
タイムスタンプを取得した後、それを 2012/5/22 のように読み取り可能なものに変換する必要があります
date メソッドは 2 つあります。 ($format, $timestamp); strftime($format [,$timestamp])
2 番目のメソッド strftime("%Y-%m-%d %H:%M:%S ") を使用することをお勧めします。 ; // 2012-05-22 15:46:40 に戻ります
5. サーバー変数 (サーバーと実行環境の情報)
$_SERVER
server_variables.php
6.variable_scope(変数スコープ グローバル静的)
static_variables.phptest();
echo '
';
test();
echo '
';
test();
echo '
';
echo '
test1();
echo '
';
test1();
echo '
';
test1();
echo '
';
test() 関数の変数 $a は $a++ の結果を保存せず、test() を繰り返し呼び出しても $a の値は増加しません
test1() 関数の変数 $a は、静的変数である staic $a = 0 を宣言します。
引用: 静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても値は失われません。
静的変数はローカル関数スコープ、つまり test1() 関数本体内にのみ存在できますが、プログラムが test1() スコープを離れても、静的変数はその値、つまり $a 変数を失いません1 ずつ増加します。 test1() が再度呼び出されるとき、 $a = 1;
global_variables.php
関数 Sum()
{
グローバル $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
echo '
関数 Sum1()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
Sum1();
echo $b;
引用: PHP では、グローバル変数を関数内で使用する場合は、関数内でグローバル変数を宣言する必要があります
これらの変数を関数で使用する場合は、その関数でグローバル変数を定義する必要があります。 これにより、多くのトラブルを回避できます。
詳細
7.reference(reference)
variable_reference.php
1.致命的なエラー: オブジェクトコンテキストにないときに $this を使用する
OOP を初めて学習するときは、よく理解していない概念があるため、この間違いは間違いなく起こりやすいです。 クラスのアクセシビリティは、海外にいる中国人がどの文化にも属しておらず、外国語を話せない(おそらく少しは話せる)と考えることもできます。外国人とコミュニケーションをとるのは、同じ国に生まれたわけではないからです。
では、エラーはどのように発生したのでしょうか?以下の例を見てください:
同様に、静的演算子 :: を使用してパブリック変数にアクセスすることはできません。 正しいアクセスは 14 行目と 25 行目です。1 つはクラスの定義 (self:: === Trones::) 内でアクセスされ、もう 1 つはクラス外でアクセスされます。
継承クラスについても、上記のルールが適用されます。
2.致命的なエラー: プライベート メソッドの呼び出し
最近、ゲーム・オブ・スローンズという非常に興味深いテレビシリーズがあります。7 人の王、一般人、そしてドラゴンの女性の 3 つのパーティがいると仮定します。 3人は以下で最終優勝、栄冠を争った。
次のストーリーにも「クラスの可視性」というタイトルが付いています。最終的な答えがわかっている場合は、説明部分をスキップしてください。
コードをコピーします
コードは次のとおりです:
目的の女性が最後の報酬を取得した場合は、13 行の $this->getFire() を実行するだけでこの部分を削除できます。同様の処理は、静的な関数ではいかなるオブジェクト オペレーションも使用できません。
怎么使人民获得王冠呢? 你去奋斗吧!
大規模なフレームワークやウェブサイトを構築しない場合、これらの概念はインターフェイスの抽象的な実装と同様です。http://www.bkjia.com/PHPjc/328069.html
www.bkjia.com