PHP-変数タイプ

PHPプログラムの途中で情報を保存する主な方法は、変数を使用することです。

PHPの変数について知っておくべき最も重要なことは次のとおりです。

  • PHPのすべての変数は、先頭のドル記号($)で示されます。

  • 変数の値は、その最新の割り当ての値です。

  • 変数は=演算子で割り当てられ、変数は左側に、式は右側に評価されます。

  • 変数は、割り当てる前に宣言することができますが、必須ではありません。

  • PHPの変数には固有の型がありません。変数は、数値または文字列の格納に使用されるかどうかを事前に認識していません。

  • 割り当てられる前に使用される変数には、デフォルト値があります。

  • PHPは、必要に応じて型をあるものから別のものに自動的に変換するという優れた仕事をします。

  • PHP変数はPerlに似ています。

PHPには、変数の作成に使用する合計8つのデータ型があります-

  • Integers −は、4195のように、小数点のない整数です。

  • Doubles −は3.14159や49.1のような浮動小数点数です。

  • Booleans −trueまたはfalseの2つの可能な値のみがあります。

  • NULL −は、NULLという1つの値しかない特殊な型です。

  • Strings −「PHPは文字列操作をサポートしています」のように、文字のシーケンスです。

  • Arrays −他の値の名前付きおよびインデックス付きコレクション。

  • Objects −はプログラマー定義のクラスのインスタンスであり、クラスに固有の他の種類の値と関数の両方をパッケージ化できます。

  • Resources − PHPの外部のリソース(データベース接続など)への参照を保持する特別な変数です。

最初の5つは単純型で、次の2つ(配列とオブジェクト)は複合です。複合型は任意の型の他の任意の値をパッケージ化できますが、単純型はできません。

この章では、単純なデータ型についてのみ説明します。配列とオブジェクトについては個別に説明します。

整数

4195のように、小数点のない整数です。最も単純なタイプです。正と負の両方の単純な整数に対応します。整数は変数に割り当てることも、式で使用することもできます。

$int_var = 12345;
$another_int = -12345 + 12345;

整数は、10進数(基数10)、8進数(基数8)、および16進数(基数16)の形式にすることができます。10進形式がデフォルトであり、8進整数は先行0で指定され、16進は先行0xで指定されます。

最も一般的なプラットフォームの場合、最大の整数は(2 ** 31 .1)(または2,147,483,647)であり、最小の(最も負の)整数はです。(2 ** 31 .1)(または.2,147,483,647)。

ダブルス

彼らは3.14159または49.1が好きです。デフォルトでは、必要最小限の小数点以下の桁数でdoubleが印刷されます。たとえば、コード-

<?php
   $many = 2.2888800;
   $many_2 = 2.2111200;
   $few = $many + $many_2;
   
   print("$many + $many_2 = $few <br>");
?>

次のブラウザ出力を生成します-

2.28888 + 2.21112 = 4.5

ブール値

それらには、trueまたはfalseの2つの可能な値しかありません。PHPには、特にブール値として使用するための定数がいくつか用意されています。TRUEとFALSEで、次のように使用できます。

if (TRUE)
   print("This will always print<br>");

else
   print("This will never print<br>");

他の型をブール値として解釈する

ブール型になっていない値の「真実」を決定するためのルールは次のとおりです。

  • 値が数値の場合、ゼロと正確に等しい場合はfalse、それ以外の場合はtrueです。

  • 値が文字列の場合、文字列が空(文字がゼロ)または文字列「0」の場合はfalseであり、それ以外の場合はtrueです。

  • タイプNULLの値は常にfalseです。

  • 値が配列の場合、他の値が含まれていない場合はfalse、それ以外の場合はtrueです。オブジェクトの場合、値を含むということは、値が割り当てられたメンバー変数を持つことを意味します。

  • 有効なリソースはtrueです(ただし、成功したときにリソースを返す一部の関数は、失敗したときにFALSEを返します)。

  • ブール値としてdoubleを使用しないでください。

次の各変数は、ブールコンテキストで使用される場合、その名前に真理値が埋め込まれています。

$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";

ヌル

NULLは、NULLという1つの値しかない特殊な型です。変数にNULL値を与えるには、次のように割り当てるだけです。

$my_var = NULL;

特別な定数NULLは慣例により大文字になっていますが、実際には大文字と小文字は区別されません。次のように入力することもできます-

$my_var = null;

NULLが割り当てられた変数には、次のプロパティがあります-

  • ブールコンテキストではFALSEと評価されます。

  • IsSet()関数でテストするとFALSEを返します。

文字列

これらは、「PHPは文字列操作をサポートしています」のような文字のシーケンスです。以下は文字列の有効な例です

$string_1 = "This is a string in double quotes";
$string_2 = 'This is a somewhat longer, singly quoted string';
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters

一重引用符で囲まれた文字列はほぼ文字通りに扱われますが、二重引用符で囲まれた文字列は変数をその値に置き換え、特定の文字シーケンスを特別に解釈します。

<?php
   $variable = "name";
   $literally = 'My $variable will not print!';
   
   print($literally);
   print "<br>";
   
   $literally = "My $variable will print!";
   print($literally);
?>

これにより、次の結果が生成されます-

My $variable will not print!
My name will print

文字列の長さに人為的な制限はありません。使用可能なメモリの範囲内で、任意の長さの文字列を作成できる必要があります。

(「this」のように)二重引用符で区切られた文字列は、PHPによって次の2つの方法の両方で前処理されます。

  • バックスラッシュ(\)で始まる特定の文字シーケンスは、特殊文字に置き換えられます

  • 変数名($で始まる)は、それらの値の文字列表現に置き換えられます。

エスケープシーケンスの置換は次のとおりです。

  • \ nは改行文字に置き換えられます
  • \ rはキャリッジリターン文字に置き換えられます
  • \ tはタブ文字に置き換えられます
  • \ $はドル記号自体に置き換えられます($)
  • \ "は単一の二重引用符(")に置き換えられます
  • \\は単一の円記号(\)に置き換えられます

ヒアドキュメント

ヒアドキュメントを使用して、1つの文字列変数に複数の行を割り当てることができます-

<?php
   $channel =<<<_XML_
   
   <channel>
      <title>What's For Dinner</title>
      <link>http://menu.example.com/ </link>
      <description>Choose what to eat tonight.</description>
   </channel>
   _XML_;
   
   echo <<<END
   This uses the "here document" syntax to output multiple lines with variable 
   interpolation. Note that the here document terminator must appear on a line with 
   just a semicolon. no extra whitespace!
   
END; print $channel; ?>

これにより、次の結果が生成されます-

This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!

<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>

可変スコープ

スコープは、変数が宣言されているプログラムに対して持つ可用性の範囲として定義できます。PHP変数は、4つのスコープタイプのいずれかになります-

  • ローカル変数

  • 関数パラメーター

  • グローバル変数

  • 静的変数

変数の命名

変数の命名規則は次のとおりです。

  • 変数名は、文字または下線文字で始める必要があります。

  • 変数名は数字、文字、アンダースコアで構成できますが、+、-、%、(、)などの文字は使用できません。&など

変数のサイズ制限はありません。