PHP 変数の概要

炎欲天舞
リリース: 2023-03-14 16:38:01
オリジナル
1617 人が閲覧しました

1.1: 型

変数には8種類あります。丸暗記する必要はありません。実践で理解を深めましょう

NULL 型とは、その型を NULL としてマークするだけです。 value は空です。NULL は値がないことを意味します

1) 整型 [integer] 数学中的整数
2) 浮点型 [float,double] 数学中的小数
3) 字符串 [string] 一串字符
4) 布尔 [boolean] 真假
5) 数组 [array] 键值对复合数据
6) 对象 [Object] [在后面的面向对象中会学到] 
7) NULL 没有值
8) 资源 [resource] “吸管”
ログイン後にコピー

変数名の命名規則:
[a-zA-Z0-9] とアンダースコア (_)

1) 変数名は大文字と小文字が区別されます

2) 数字で始めることはできません

1.2: 変数の検出

echo 存在しない変数は通知レベルのエラーを報告します

そのため、変数が存在するかどうかを確認する必要があります

変数が存在するかどうかを確認する方法

isset — 変数が設定されているかどうかを確認します宣言された変数は true を返し、宣言されていない変数は false を返します。 変数が存在するかどうかを検出します。変数名がリストにあるかどうかを確認するだけです

$a = 3;//整型
$b = 3.14;//浮点型
$c = null;//null型
$d = 'hello';//字符串
$e = true;//布尔型
echo $D;
ログイン後にコピー

NULL の値を持つ変数の場合は、null には値がないため、false も返されます。宣言されていない変数は、もちろん存在しません

1.3: 型検出

変数とその変数の型を検出します。変数の型はすでにbox

gettype — 変数の型を取得する [既成のシステム関数]

$b = null; $c = false; $d=0; $e='';
//分别检测上述变量是否存在 
if(isset($a)) {
  echo '变量b存在';
 }else{
  echo '变量b不存在'; 
}
ログイン後にコピー


変数が特定の型であるかどうかを判断する

$a = false;
echo gettype($a);
$b = "1";
echo gettype($b);
$c = 1.11;
echo gettype($c);
$d = 'hello';
echo gettype($d);
$e = null;
echo gettype($e);
ログイン後にコピー
1.4: 変数をデバッグする

文字列、数値をエコーする

print_r は階層データを出力し、配列などのオブジェクト

var_dump は変数の型と値を出力します [コードのデバッグに便利]

is_float()[is_double] 检测变量是否为浮点型
is_int()[is_integer] 检测变量是否为整型
is_string() 检测变量是否为字符串
is_object() 检测变量是否为对象
is_array() 检测变量是否为数组
is_resource 检测变量是否为资源类型
is_bool 检测变量是否是布尔型
is_null 检测变量是否为 NULL
$a = 'hello';
if(is_string($a)) {
  echo 'a是字符串'; 
}else{
  echo 'a不是字符串';
 }
ログイン後にコピー

1.5: 型変換

PHP では、変数の型はいつでも変換できます。最も一般的なのは、文字を数値に変換すること、または数値/文字列間の変換 -> ブール値の変換

文字列を数値に変換することです。が発生した場合、インターセプトされた部分は数値に変換されます

$a = 'hello';
$b = array(1,2,"3"); $c = false;
$d = null;
$e=18;
$f = true;
//布尔型的true会打印出1,false和null什么都不显示
 echo $a,$b,$c,$d,$e,$f,&#39;<hr>&#39;;
//print_r 打印层次化的数据,比如数组和对象 
print_r($b);
print_r($c);
print_r($d);
print_r($f);
//不要用echo和print_r打印布尔型的值,因为会干扰我们 
//用var_dump打印布尔和null
var_dump($c);
var_dump($d);
ログイン後にコピー

数値の文字列への変換

$a = &#39;12&#39;; $b=$a+3; 
var_dump($b);
$a = &#39;12.5hello&#39;; 
//$a = &#39;12.5hello99&#39;; 
$b=$a+3;
var_dump($b);
$a = &#39;word12.5hello&#39;;
$b=$a+3; 
var_dump($b);
ログイン後にコピー

数値/文字列/配列のブール値への変換

$a = 123;
$b = $a . &#39;hello&#39;;
var_dump($b);
ログイン後にコピー
判定された値がブール値である必要がある場合は、数字の 3 はブール値に変換されます。理解していますか? true または false として理解すべきですか?

次の値はすべてブール値として理解されます'','0',0,0.0, false,NULL,array() など 値はブール値として扱われます true

$b=3; 
if($b){
echo &#39;b is true&#39;;
 }else{
    echo &#39;b is false&#39;;
}
ログイン後にコピー


empty(var) — 変数が空かどうかを確認します var が空でない値またはゼロ以外の値の場合、empty( ) は FALSE を返します
つまり、""、0、0.0、"0"、NULL、FALSE、array(); および var が空の場合は、TRUE が返されます

if(&#39;&#39; == false) {
echo &#39;空字符串果然假&#39;;
}
ログイン後にコピー

1.6。 : 割り当て 方法には 2 種類あります:
1. 値による割り当て (2 人が同じチャンネルで 2 台のテレビを視聴します)
2. 割り当てによる (2 人が同じテレビを視聴します)

1.値による

変数名は実際にはボックスに表示されません。 上には変数テーブル (クラス名簿のようなもの) があり、変数テーブル内の変数名はそのボックスに配置されます。対応するボックス。

$arr = array();
if(empty($arr)) {
echo &#39;变量为空&#39;;
 }
ログイン後にコピー

$li, $wangの値を変更します。
$li = 23;
$wang = $li;
echo $li, &#39;~&#39;, $wang;
ログイン後にコピー

の値を変更します。この代入処理は、$liの値を$wang2に代入するものです。 $a
$li = 99;
echo $li, &#39;~&#39; ,$wang;
ログイン後にコピー

1.7: 破棄

なぜ変数を破棄する必要があるのでしょうか?

より大きな配列やより大きなオブジェクト、特に GD 描画は、時間内にメモリを解放するためにより多くのリソースを消費することがあるためです。まず指定された変数を変数から破棄します。テーブル (名簿) から変数名を削除してから、対応するボックスを見つけて削除します。

$a = &#39;tvb&#39;;
$b = &$a; 
//$a,$b共同指向同一个值 
echo $a,&#39;~&#39;,$b;
ログイン後にコピー
注: 2 つの変数が同じボックスを指している場合、変数の 1 つが参照割り当てである場合は破壊されています、ボックスは破壊できません 紛失しました。
$a = &#39;btv&#39;;
echo $a,&#39;~&#39;,$b;
ログイン後にコピー

$a に新しい値を再割り当てします

$a=99; //unset($a);
if(isset($a)) {
 echo &#39;a存在&#39;;
}else{
  echo &#39;a不存在&#39;;
}
ログイン後にコピー

1.8: 動的変数名

動的変数名は PHP の柔軟性を反映することができます

変数の値を使用して名前を作成します別の変数の

$a=99;
$b = &$a;
unset($a);
echo $a,$b;//报一个notice的错误
ログイン後にコピー

以上がPHP 変数の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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