Conversion automatique et conversion forcée des types de données php

PHP est un langage de programmation complètement faiblement typé au stade PHP 5.x. Le type dit faible signifie que lors de la déclaration d'une variable, il n'est pas nécessaire de spécifier le type de la variable. Je veux déclarer une variable entière. Je n'ai pas besoin d'écrire le type devant puis d'écrire la variable.

Les performances de PHP 7 ont été grandement améliorées. Selon les résultats des tests réels, les performances de PHP 7 ont été améliorées de près de 200 % par rapport à PHP5.6. À certains endroits de PHP 7, nous pouvons forcer la spécification du type, ou déclarer des variables sans forcer la spécification du type.

Parlons ensuite de la conversion de type forcée et de la conversion de type automatique.

【Niveau tacite】Mots anglais pour la conversion automatique de type des valeurs booléennes et la conversion de type forcée

Conversion de type automatique des valeurs booléennes

Automatique conversion de type , c'est-à-dire que le type de données passera automatiquement à d'autres types pour participer aux opérations dans certaines circonstances. La conversion de type automatique se produit lorsque certaines valeurs sont automatiquement converties lors des opérations et des jugements.

La situation suivante est conversion de type automatique lors du jugement de la valeur booléenne :

1, 0 de type entier est faux et toutes les autres valeurs entières sont vraies

2, 0,0 pour la virgule flottante, false pour la valeur booléenne. C'est vrai tant qu'il y a une valeur non nulle après la virgule.

3, la chaîne vide est fausse, tant qu'elle contient un espace, elle est considérée comme vraie.

4, 0 dans une chaîne, est également traité comme faux. Tout le reste est vrai

5, et un tableau vide est également considéré comme faux Tant qu'il contient une valeur, il est vrai.

6, vide est également faux

7, les ressources qui n'ont pas été déclarées réussies sont également fausses

Expérimentons les principes ci-dessus un par un.

1, 0 pour un entier est faux, toutes les autres valeurs entières sont vraies

<?php
//整型的0,换成整型的其他值试试
$bool = 0;
if($bool){
   echo '美女美女我爱你';
}else{
   echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

2, 0,0 pour une virgule flottante, faux pour une valeur booléenne. C'est vrai tant qu'il y a une valeur non nulle après la virgule.

<?php
//浮点类型的的0,换成其他值试试
$bool = 0.0;
if($bool){
   echo '美女美女我爱你';
}else{
   echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

3, la chaîne vide est fausse, tant qu'elle contient un espace, elle est considérée comme vraie.

<?php
//空字符串,中间没有空格哟。实验完加个空格试试
$str = '';
if($str){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

4, 0 dans la chaîne, est également considéré comme faux. Tout le reste est vrai

<?php
//0这个字符串哟,试试其他值看看
$str = '0';
if($str){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

5, et un tableau vide est également considéré comme faux Tant qu'il contient une valeur, il est vrai.

<?php
//这个数组当中啥也没放
$arr = array();
if($arr){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

6, vide est également faux

<?php
//声明了一个空的变量$bool
$bool = null;
if($bool){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

7, les ressources qui ne réussissent pas sont également fausses

<?php
//下面这段代码会显示警告,可忽略。暂时只需要对着实验知道效果即可:未声成功的资源也为假
//下面这一块了解意思就行:打开adasfasfasfdsa.txt这个不存在的文件
$res = fopen('adasfasfasfdsa.txt','r');
if($res){
    echo '美女美女我爱你';
}else{
    echo '凤姐凤姐爱死我,执行假区间咯';
}
?>

Conversion de type automatique d'autres types

Une conversion de type automatique peut également se produire pendant le fonctionnement. C'est la même chose que toutes les règles et opinions que nous résumons : résumez d'abord, puis expérimentez.

Seules les opérations scalaires produiront les conversions de type automatiques suivantes :

2015-07-28_55b79dcad98de.png

<?php
//布尔变整型参与运算
$fo = true;
$result = $fo + 10;
//$result 结果为整型的11,因为$fo布尔的true变为了1
//如果$fo的值为0
var_dump($result);
//字符串类型
$str = '419不要爱';
$result = $str + 1;
//结果为420。因为将$str变为了整型的419参与运算
//将419放在字符串中间和结尾试试
var_dump($result);
?>

Résumé :

Lorsqu'une valeur booléenne de true participe à une opération, elle deviendra un entier ou une virgule flottante 1. Lorsqu'une valeur booléenne de false participe à une opération, elle deviendra un entier ou une virgule flottante 0. Le début de la chaîne est un caractère de type entier ou à virgule flottante, sera converti dans le type correspondant pour participer à l'opération

Conversion de type forcée

Il existe trois méthodes de conversion de type forcée :

1. Utilisez les trois fonctions suivantes pour terminer la conversion de type, intval(), floatval(), strval()

2. Ajoutez () avant la variable et écrivez le type à l'intérieur, convertissez-le et assignez-le à d'autres variables

3.settype(variable, Type) Changez directement la quantité elle-même

Expérimentons :
intval(), floatval(), strval() conversion

<?php
    $float = 1.23;
    $result = intval($float);
    //看看结果是不是变了?
    var_dump($result);
    //鸭脖子为整型的5
    $yabozi = 5;
    $re = floatval($yabozi);
    var_dump($re);
    //定义整型的变量
    $yabozi = 23;
    $bian = strval($yabozi);
    //强制变成字符串试试
    var_dump($bian);
?>

avant la variable Ajoutez le type entre (), convertissez-le et affectez-le à d'autres variables

<?php
   //定义一个变量,我们来变化一下试试
   $transfer = 12.8;
   //把浮点变为整型
    $jieguo = (int)$transfer;
    var_dump($jieguo);
   //把浮点变为布尔
   $jieguo = (bool) $transfer;
   var_dump($jieguo);
   //把布尔变整型
   $bool = true;
   $jieguo = (int)$bool;
   var_dump($jieguo);
    //把浮点变数组
   $fo = 250;
   $jieguo = (array)$fo;
   var_dump($jieguo);
   //其他的操作方式,按照文字总结的规律你来试试
?>

settype(variable, type ) modifiez directement la variable elle-même

<?php
    //定义浮点变为整型
    $fo = 250.18;
   //settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
    settype($fo,'int');
    //输出看看结果
    var_dump($fo);
?>

【Essayez-le】Voici les caractéristiques de la conversion de type forcée Expérimentez avec chaque élément pour voir s'il est correct :

1. S'il est converti en un type entier, ce sera un type entier 0

2. S'il est converti en un type à virgule flottante, il sera être une valeur à virgule flottante 0

3. Si elle est convertie en chaîne, ce sera une chaîne vide''

4. La virgule flottante 123.0 convertie en chaîne sera la chaîne 123

5. La virgule flottante 123.2 convertie en chaîne sera la chaîne 123.2

6. Flottant Quelle que soit la taille du point décimal, il sera supprimé et la valeur après le point décimal sera être rejeté

7. Si la chaîne est convertie en entier, si la valeur est devant, la valeur précédente sera retirée en tant que valeur de conversion de type entier.

8.settype(variable,'null'); Équivalent à unset() une variable

9.$Target variable = (type)$ Les variables d'exploitation ne changeront que le type de la cible variable , ne changera pas le type de la variable d'origine. Settype modifie la valeur d'origine

<?php
      //小可爱,记得自己做实验,验证上面的9点哟
    $t=12.9;
    settype($t,'int');
    var_dump($t);
?>

set Prononciation : [sɛt]
Explication : Set

type Prononciation : [taɪp ]
Explication : Type, méthode


Formation continue
||
<?php //浮点类型的的0,换成其他值试试 $bool = 0.0; if($bool){ echo '美女美女我爱你'; }else{ echo '凤姐凤姐爱死我,执行假区间咯'; } ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel