PHP unterstützt 8 primitive Datentypen. Vier Skalartypen: Boolean (Boolean), Integer (Integer), Float (Gleitkommatyp, auch Double genannt), String (String), zwei zusammengesetzte Typen: Array (Array), Object (Objekt) und schließlich Es gibt zwei spezielle Typen Typen: Ressource (Ressource) und NULL (kein Typ).
Hinweis: Wenn Sie den Wert und Typ eines Ausdrucks überprüfen möchten, verwenden Sie die Funktion var_dump(). Wenn Sie zum Debuggen nur eine für Menschen lesbare Darstellung des Typs benötigen, verwenden Sie die Funktion gettype(). Um einen Typ zu überprüfen, verwenden Sie nicht gettype(), sondern die Funktion is_type.
PHP ist eine schwache Sprache und wird entsprechend der Programmlaufumgebung automatisch konvertiert. Wenn Sie das ==-Zeichen verwenden und eine Zahl und eine Zeichenfolge vergleichen oder eine Zeichenfolge mit numerischem Inhalt vergleichen, wird die Zeichenfolge angezeigt in numerische Werte umgewandelt und Vergleiche werden numerisch durchgeführt. Diese Regel gilt auch für switch-Anweisungen. (Bitte verwenden Sie === für den absoluten Vergleich)
|
Zweiter Operandentyp | Typkonvertierung | ||||||||||||||||||||||
Ganzzahltyp | Gleitkommatyp td> | Ganzzahltyp in Gleitkommatyp konvertiert | ||||||||||||||||||||||
Ganzzahltyp | StringString in Zahl konvertieren, wenn der String in konvertiert wird ein Gleitkommatyp, der Ganzzahltyp wird auch in einen Gleitkommatyp konvertiert | |||||||||||||||||||||||
Gleitkommatyp | String | String in Gleitkomma konvertieren |
Zusammenfassend: Gleitkommatyp> Integer-Typ> String>Boolescher Typ
Boolescher Typ
Bei der Konvertierung in einen Booleschen Wert werden die folgenden Werte als FALSCH betrachtet :
Alle anderen Werte gelten als WAHR (einschließlich aller Ressourcen).
Boolescher Wert FALSE selbst
Ganzzahliger Wert 0 (Null)
Gleitend Punktwert 0,0 (Null)
Die leere Zeichenfolge und die Zeichenfolge „0“
Ein Array, das keine Elemente enthält
Ein Objekt, das keine Mitgliedsvariablen enthält (gilt nur für PHP 4.0)
Sondertyp NULL (einschließlich Variablen, denen kein Wert zugewiesen wurde)
SimpleXML-Objekt generiert aus leeren Tags
Ganzzahltyp
Ganzzahl Überlauf: Wenn eine bestimmte Zahl außerhalb des Ganzzahlbereichs liegt, wird sie als Gleitkommazahl interpretiert. Wenn das Ergebnis der Operation den Bereich einer Ganzzahl überschreitet, wird ebenfalls Float zurückgegeben.
In PHP gibt es keinen ganzzahligen Divisionsoperator (im Gegensatz zu Java). 1/2 ergibt Float0,5. Der Wert kann in eine ganze Zahl umgewandelt werden, wobei der Bruchteil verworfen wird, oder zur besseren Rundung kann die Funktion „round()“ verwendet werden.
<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>
Bei der Konvertierung von einer Gleitkommazahl in eine Ganzzahl wird diese abgerundet.
Warnung
Wechseln Sie niemals einen unbekannten Bruch in eine ganze Zahl um, da dies manchmal zu unvorhersehbaren Ergebnissen führen kann.
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>
Float-Typ
<?php $a = 0.1; $b = 0.9; $c = 1; var_dump(($a+$b)==$c);//true var_dump(($c-$b)==$a);//falseprintf("%.20f", $a+$b); // 1.00000000000000000000 printf("%.20f", $c-$b); // 0.09999999999999997780?>
Dieses Problem tritt auf, weil die Gleitkommaberechnung Präzision erfordert konvertiert Wenn es binär ist, kann die Genauigkeit verloren gehen.
Glauben Sie also niemals, dass eine Gleitkommazahl bis zur letzten Ziffer genau ist, und vergleichen Sie niemals zwei Gleitkommazahlen auf Gleichheit.
Wenn Sie wirklich eine höhere Präzision benötigen, sollten Sie mathematische Funktionen mit beliebiger Präzision verwenden.
高精度运算的方法如下: bcadd 将两个高精度数字相加 bccomp 比较两个高精度数字,返回-1,0,1 bcp 将两个高精度数字相除 bcmod 求高精度数字余数 bcmul 将两个高精度数字相乘 bcpow 求高精度数字乘方 bcpowmod 求高精度数字乘方求模 bcscale 配置默认小数点位数,相当于Linux bc中的”scale=” bcsqrt 求高精度数字平方根 bcsub 将两个高精度数字相减
Wie die obige Warnmeldung besagt, ist der Vergleich zweier Gleitkommazahlen auf Gleichheit aufgrund interner Ausdrücke problematisch. Es gibt jedoch Umwege, Gleitkommawerte zu vergleichen.
Um Gleitkommazahlen auf Gleichheit zu testen, verwenden Sie einen minimalen Fehlerwert, der nur einen Punkt größer als dieser Wert ist. Dieser Wert, auch Maschinen-Epsilon oder kleinste Ganzzahleinheit genannt, ist der kleinste Differenzwert, der in der Berechnung akzeptiert werden kann.
und entsprechen einer Genauigkeit von fünf Dezimalstellen.
<?php $a = 1.23456789; $b = 1.23456780; $epsilon = 0.00001; if(abs($a-$b) < $epsilon) { echo "true"; } ?>
String-Typ
Wenn die Zeichenfolge in doppelte Anführungszeichen (") eingeschlossen ist, führt PHP einige Sonderzeichenmanipulationen durch. Analyse: wie n, \, $
Das wichtigste Merkmal einer mit doppelten Anführungszeichen definierten Zeichenfolge ist, dass die Variable durch
Sie können das Sprachkonstrukt „array()“ verwenden um ein neues Array zu erstellen. Es werden beliebig viele durch Kommas getrennte Schlüssel => Wertepaare >
Die Gleitkommazahl wird ebenfalls in einen umgewandelt Ganzzahl, was bedeutet, dass der Dezimalteil gerundet wird. Beispielsweise wird der Schlüsselname 8,7 tatsächlich als 8 gespeichert.
array( key => value , ... ) // 键(key)可是是一个整数 integer 或字符串 string // 值(value)可以是任意类型的值 此外 key 会有如下的强制转换: <?php $arr = array(5 => 1, 12 => 2); $arr[] = 56; // This is the same as $arr[13] =56; at this point of the script $arr["x"] = 42; // This adds a new element to the array with key "x" unset($arr[5]); // This removes the element fromthe array unset($arr); // This deletes the whole array
如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。
如果指定的键名已经有了值,则该值会被覆盖。
要删除某键值对,对其调用 unset() 函数。unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。如果需要删除后重建索引,可以用 array_values() 函数。
foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。
数组(Array) 的赋值总是会涉及到值的拷贝。使用引用运算符通过引用来拷贝数组。
<?php $arr1 = array(2, 3); $arr2 = $arr1; $arr2[] = 4; // $arr2 is changed,// $arr1 is still array(2, 3) $arr3 = &$arr1; $arr3[] = 4; // now $arr1 and $arr3 are the same ?>
NULL
特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。
在下列情况下一个变量被认为是 NULL:
1. 被赋值为 NULL。2. 尚未被赋值。3. 被 unset()。
转换到 NULL :使用 (unset) $var 将一个变量转换为 null 将不会删除该变量或 unset 其值。仅是返回 NULL 值而已。
相关推荐:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für PHP-Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!