データ型
未定義の変数、データ型は NULL です。
PHP の配列とオブジェクトは異なる型ですが、js の配列はオブジェクトです。 (追記: es6 には既に組み込みクラスがあります)
演算子文字列の連結では + の代わりに . (ドット演算子) を使用します。したがって、PHP では 2 つの文字列数値を + で接続すると、自動的に数値に変換されて加算されます。
$a = "100";$b = "200";$c = $a + $b;echo $a + $b; // 300ループ ステートメント
foreach ループは 配列 でのみ機能し、配列内の各キーと値のペアを反復するために使用されます。
$a = array("red", "green", "blue", array(1, 2, 3)); foreach ($a as $i) { var_dump($i);}// string 'red' (length=3)// string 'green' (length=5)// string 'blue' (length=4)// array// 0 => int 1// 1 => int 2// 2 => int 3ダブルクォートとシングルクォーテーション
js におけるダブルクォーテーションとシングルクォーテーションの使い方は基本的に同じです。
PHP 内の単一引用符はコンテンツをプレーンテキストとして扱い、サーバーによって翻訳されません。二重引用符はその逆で、内部のコンテンツはサーバーによって処理され、HTML コードとして出力されます。
$a = 10;echo "the value of a is $a"; // the value of a is 10echo 'the value of a is $a'; // the value of a is $a
データベースクエリステートメントを作成するときに非常に便利です。
結果は次のようになりました:
$date = '2016-03-01';$sql = 'select * from adblock where day >= ' . '"' . $date . '"' . ' order by day';
実際には、次のようにするだけで済みます:
$date = '2016-03-01';$sql = "select * from adblock where day >= $date order by day";
二重評価を避けるために (効率が高く) 可能であれば一重引用符を使用します (js の eval() に似ています) 、setTimeout コールバックは文字列などを渡しません)。
関数パラメータの受け渡しJS 関数は値によって渡されます (詳細については、こちらを参照してください)。ただし、オブジェクト (配列を含む) パラメータを渡すときは特に注意する必要があります。元の値が変更されている可能性がありますので注意してください。
PHP は、値による受け渡しと参照による受け渡しをサポートしています。違いは、C 言語と同様に、関数パラメーター内の & アドレス記号です。
値による (元の値は変更されない):
function fn($a) { $a[0] = 10;}$a = array(1, 2, 3);fn($a);var_dump($a);// array// 0 => int 1// 1 => int 2// 2 => int 3
参照による (元の値が変更される):
function fn(&$a) { $a[0] = 10;}$a = array(1, 2, 3);fn($a);var_dump($a);// array// 0 => int 10// 1 => int 2// 2 => int 3変数のスコープ
js の変数のスコープは関数単位であり、ブロックレベルのスコープはありません。 (追記: es6 let キーワードはブロックレベルのスコープを実装します)。
PHP には 3 つの異なる変数スコープがあります:
関数の外部で宣言された変数はグローバル スコープを持ち、関数内でのみ外部にアクセスできます。 (これは js とは異なり、js 関数は関数の外の変数にアクセスできます) 関数内で宣言された変数は LOCAL スコープを持ち、
は関数内でのみアクセスできます。 (jsと似ています) PHP 関数外の変数は関数外からのみアクセスでき、関数内の変数は関数内からのみアクセスできます。グローバル キーワード (または $GLOBALS[]) を使用して、内部と外部の境界を開くことができます。 関数内の外部変数にアクセスする:
$a = 10;function fn() { global $a; echo $a; // 10}fn();
または:
$a = 10;function fn() { echo $GLOBALS['a']; // 10}fn();
関数の外で内部変数にアクセスする (実際には関数内でグローバル変数を宣言します):
function fn() { global $a; $a = 20;}fn();echo $a; // 20
または:
function fn() { $GLOBALS['a'] = 20;}fn();echo $a; // 20型変換
PHP で変数を強制することもできます変換、これはC言語に似ています。変換する変数の前にターゲットの型を追加し、ターゲットの型を括弧で囲みます。
PHP で許可される強制型変換は次のとおりです:
(int)、(integer) - 整数型に変換されます
(bool)、(boolean) - bool 型に変換されます
is_integer()
is_string()
変数の型を設定する:
$a = 10;settype($a, "string");var_dump($a); // string '10' (length=2)
データ型も返します
と変数の値。echo() (複数の文字列を出力可能) または var_dump() を使用して変数を出力します。 php ファイルをブラウザで直接開くと、印刷結果がページに表示されます。http リクエストの場合、印刷結果は http レスポンス (f12 ビュー) に表示されます。 JS デバッグのコンソール出力スタイルに慣れている場合は、chrome-logger を試すことができます
その他isset() は変数が定義されているかどうかを判断します
unset() は 1 つ以上の変数を削除します