Maison >php教程 >php手册 >Résumé des connaissances de base des bases de PHP_php

Résumé des connaissances de base des bases de PHP_php

WBOY
WBOYoriginal
2016-05-16 09:00:072014parcourir

Certains de ces concepts PHP sont difficiles à comprendre au début, je les liste tous, dans l'espoir d'aider certaines personnes et de réduire les épines sur la voie à suivre.

1. variables variables

variable_variables.php

Copier le code Le code est le suivant :

$a = 'bonjour';
$bonjour = 'bonjour à tous';

écho $$a.'
';

$b = 'Jean';
$c = 'Marie';
$e = 'Joe';

$étudiants = array('b','c','e');

echo ${$students[1]};
/*
foreach($students as $seat){
echo $$seat.'
';
}
$$var[1]
${$var[1]} pour #1
*/

$a = 'bonjour';

Attribuez bonjour à la variable $a, donc $$a = ${hello} = $hello = 'bonjour tout le monde';

Si pour $$students[1], cela entraînera une confusion et l'interpréteur PHP pourrait ne pas être en mesure de le comprendre. Bien que '[' ait un opérateur supérieur, le résultat pourrait ne pas être affiché.

Une bonne façon de l'écrire est : ${$students[1]} = 'Mary'

;

2. Fonction de tableau (fonction de tableau)

array_functions.php

Copier le code Le code est le suivant :

echo' ';
$numbers = array(1,2,3,4,5,6);
print_r($numbers);
echo '< ;br / >';

// déplace le premier élément d'un tableau
// l'index sera réinitialisé
$a = array_shift($numbers);

echo 'a: '.$a.'
';
print_r($numbers);

// pousser l'élément devant le tableau
// renvoie le nombre de tableaux et réinitialiser l'index du tableau
$b = array_unshift($numbers, 'first');
echo '
b : '.$b.'
';
print_r($numbers);

echo '


';
echo '

pop & push

';
// fait sortir le dernier élément du tableau
$c = array_pop($numbers);
print_r($numbers);
echo '
';

// pousser l'élément jusqu'à la fin du tableau
$d = array_push($numbers, 'last');
echo 'd: '.$d.'
';

print_r($numéros);



Plus de références sur les fonctions de tableau

3. dates et heures (heure et date)

Il existe 3 façons de créer une heure unix (nombre de secondes du 1/1970 à maintenant)

time(); Renvoie l'horodatage actuel

mktime($hr, $min, $sec, $month, $day, $year mktime(6,30,0,5,22 ); 2012) Renvoie l'horodatage de 2012 22/05 6:30:00

strtotime($string); strtotime("+1 day") Renvoie l'horodatage de cette heure demain plus 'lundi dernier' ' Lasy Year '

checkdate($month, $day, $year); Vérifier si une date est vraie checkdate(5,32,2012) ? 🎜>Après avoir obtenu l'horodatage, nous devons le convertir en lisible, tel que 2012/5/22

Nous avons 2 méthodes date($format, $timestamp); )

Il est recommandé d'utiliser le deuxième type, strftime("%Y-%m-%d %H:%M:%S"); // return 2012-05-22 15 :46: 40



Plus de référence d'heure et de date

5. Variables du serveur (informations sur le serveur et l'environnement d'exécution)


$_SERVER

server_variables.php




echo 'Détails du SERVEUR :
'
echo 'SERVER_NAME : '.$_SERVER['SERVER_NAME'].'
';
echo 'SERVER_ADD : '.$_SERVER['SERVER_ADDR'].'< br /> ;';
echo 'SERVER_PORT : '.$_SERVER['SERVER_PORT'].'
';
echo 'DOCUMENT_ROOT : '.$_SERVER['DOCUMENT_ROOT'].'
';
echo '
';

echo 'Détails de la page :
'
echo 'REMOTE_ADDR : '.$ _SERVER['REMOTE_ADDR'].'
';
echo 'REMORT_PORT: '.$_SERVER['REMOTE_PORT'].'
'
echo 'REQUEST_URI: '; .$_SERVER ['REQUEST_URI'].'
';
echo 'QUERY_STRING : '.$_SERVER['QUERY_STRING'].'
'
echo 'REQUEST_METHOD : '.$_SERVER['REQUEST_METHOD'].'
';
echo 'REQUEST_TIME : '.$_SERVER['REQUEST_TIME'].'
'; 'HTTP_USER_AGENT : '.$_SERVER['HTTP_USER_AGENT'].'
';

Plus de détails

6.variable_scope (portée de la variable globale statique)

static_variables.php

Copier le code Le code est le suivant :

function test()
{
$a = 0;
echo $a;
$a++;
}

test();
echo '
';
test();
echo '
';
test();
echo '
';

echo '


';
function test1()
{
static $a = 0;
echo $a;
$a++;
}

test1();
echo '
';
test1();
echo '
';
test1();
echo '
';

La variable $a dans la fonction test() n'enregistre pas le résultat de $a++, et les appels répétés à test() n'augmentent pas la valeur de $a

La variable $a dans la fonction test1() déclare staic $a = 0, qui est une variable statique.

Citation : Une variable statique n'existe que dans la portée d'une fonction locale, mais elle ne perd pas sa valeur lorsque l'exécution du programme quitte cette portée.

Une variable statique ne peut exister que dans la portée de la fonction locale, c'est-à-dire le corps de la fonction test1(), mais lorsque le programme quitte la portée test1(), la variable statique ne perdra pas sa valeur, c'est-à-dire le $ une variable augmentera de 1 ; lorsque test1() sera à nouveau appelé, $a = 1;

global_variables.php

Copier le code Le code est le suivant :

$a = 1;
$b = 2;

fonction Somme()
{
global $a, $b;

$b = $a + $b;
}

Somme();
echo $b;
echo '


';
$a = 1;
$b = 2;

fonction Sum1()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum1();
echo $b;

Citation : En PHP, les variables globales doivent être déclarées globales à l'intérieur d'une fonction si elles doivent être utilisées dans cette fonction

Si ces variables doivent être utilisées dans une fonction, les variables globales doivent être définies dans cette fonction. Cela peut éviter bien des ennuis.

Plus de détails

7.reference(reference)

variable_reference.php

Copier le code Le code est le suivant :

$a = 'arist'
$b = $ a ;
$b = 'ming';
echo "Je m'appelle :{$a}. Mais ma mère m'appelle {$b}.
"

echo '
';

$a = 'arist';
$b = &$a;
$b = 'ming'; " Je m'appelle :{$a}. Et ma mère m'appelle {$b}.
"


Ce concept peut être compris ainsi, ma mère m'appelle Mingming, mais mon patron m'appellera Xiaoyan ; que ce soit évident ou Xiaoyan, c'est moi.
'&' Et c'est ainsi que différentes personnes nous appellent des alias, c'est-à-dire des références, ce qui équivaut à $a = {moi, ou la valeur en mémoire}, $b = {leader, mère ou variable}
Grâce à &, $b pointe vers la seule et même valeur de $a en mémoire. Ainsi, peu importe comment votre patron vous appelle ou comment votre mère vous appelle, vous êtes vous. Seul le nom est différent.

Ainsi, après avoir passé la référence, nous modifions la valeur de $b et modifions également la valeur de $a.


8. passer la variable de référence à la fonction (passer le paramètre de référence à la fonction)


function ref_test(&$var){
return $var *= 2
}

$a = 10;
ref_test($a);
echo $a;


Lorsque nous passons des paramètres aux fonctions par référence, nous ne le sommes pas. en passant les variables copient, mais la valeur réelle,

Donc quand on appelle la fonction ref_test($a), la valeur de $a a été modifiée, donc au final $a = 20; >9. valeur de retour de la fonction de référence (valeur de retour de la fonction de référence)

reference_function_return_value.php





Copier le code
Le code est le suivant :

function &increment(){
static $var = 0;
$var++;
return $var;
}

$a =& incrément(); // 1
incrément(); // 2
$a++; //3
incrément(); // 4
echo "a : {$a }";


Déclarez d'abord une fonction de référence. Dans le corps de la fonction, déclarez une variable statique $var, qui peut enregistrer la valeur augmentée ;

$a =& incrément( ); Cette instruction est la valeur de retour de la variable $a fonction de référence incrément()

est la même que la variable de référence précédente. Vous pouvez considérer la fonction incrément() comme une variable ; $ a = & $b;

Donc, Increase() et $a pointent tous deux vers la même valeur. Changer l'un ou l'autre peut changer la même valeur.

Plus de détails

Objet POO

1.Erreur fatale : utilisation de $this lorsqu'il n'est pas dans le contexte d'un objet

Cette erreur est certainement facile à se produire lorsque vous apprenez la POO pour la première fois, car il y a un concept que vous ne comprenez pas vraiment. L'accessibilité d'un cours peut aussi être considérée comme une portée. On peut aussi penser à un Chinois à l'étranger qui n'appartient à aucune culture et ne parle pas de langues étrangères (peut-être qu'il connaît un peu mais il ne peut pas) ; se passer. Communiquer avec des étrangers car ils ne sont pas nés dans le même pays.
Alors, comment l'erreur s'est-elle produite ? Regardez l'exemple ci-dessous :

Copier le code Le code est le suivant :

classe Trones {
static public $fire = "Je suis le feu.";
public $water = "Je suis l'eau";

static function getFire( ) {
return $this-> fire ; / / faux
}
fonction statique getWater( ) {
  return $self::water ; // faux
}

fonction statique Fire( ) {
return self: :$fire ; // assurez-vous d'utiliser self pour accéder à la propriété statique avant d'invoquer la fonction
}
}

/*
Erreur fatale : utilisation de $this when pas dans le contexte de l'objet
*/
//echo Trones::getFire( ) ;
//echo Trones::getWater( ) ;

// corriger
echo Trones : :Fire( );
echo "
" ;
$trones = new Trones ;
$trones->fire ; // Remarque : propriété non définie : Trones::$fire ( basé sur un paramètre d'erreur différent) simple est une erreur
echo Trones::$fire ;

Cette erreur est très classique et très pratique Regardons d’abord la définition de statique :

Déclarer des propriétés ou des méthodes de classe comme statiques les rend accessibles sans avoir besoin d'une instanciation de la classe. Une propriété déclarée comme statique n'est pas accessible avec un objet de classe instancié (bien qu'une méthode statique le puisse).

Traduction : Définir les propriétés ou les méthodes d'une classe comme statiques permet d'y accéder directement sans initialiser une classe. Une propriété définie comme statique n'est pas accessible aux objets de la classe à l'aide de l'opérateur objet * -> * (elle est accessible via des méthodes statiques).

Exemple de description :
Les lignes 7 et 10 ont fait la même erreur. La première consiste à utiliser l'opérateur objet pour accéder aux variables statiques. Si vous regardez la définition, $this est une pseudo variable équivalente à un objet, une instance. Si vous utilisez l'opérateur d'objet -> pour y accéder, une erreur sera signalée.

De même, vous ne pouvez pas utiliser l'opérateur statique :: pour accéder à une variable publique. L'accès correct doit être les lignes 14 et 25, l'une est accessible dans la définition de la classe (self:: === Trones::) et l'autre est accessible en dehors de la classe.

Pour les classes héritées, les règles ci-dessus s'appliquent également.

2.Erreur fatale : Appel à une méthode privée


Il y a récemment une série télévisée très intéressante intitulée Game of Thrones. Nous supposons qu'il y a 3 partis, 7 rois, des gens ordinaires et une dame dragon. Les trois d’entre eux se sont affrontés ci-dessous pour la victoire finale, qui était la couronne.

L'histoire suivante a également un titre : Visibilité de la classe (visibilité) Si vous connaissez la réponse finale, vous pouvez sauter la partie explication.

Copier le code Le code est le suivant :

 class Trones {
     protected $fire = " fire ";
     public $water = " water " ;
     static private $trones  = "Trones";

     fonction protégée getFire( ) {
         $this->fire ;
     }

     fonction publique statique TheDragenOfMather( ) {
         renvoie __METHOD__." utilisez ".$ this->getFire()." obtient la fonction publique statique ".self::getTrones( ) ;
     }

     fonction publique statique getWater( ) {
         return __METHOD__ ;
     }

     fonction privée statique getTrones( ) {
         return  self::$trones ;
     }

 }

 class Kings étend Trones {
     fonction statique TheSevenKing( ) {
         return __METHOD__."obtient la fonction statique ".self::getTrones( );
     }
 }

 class People étend Trones{
     fonction statique ThePeople( ) {
return __METHOD__."obtient le ".self::getTrones( );
     }
 }
 echo Kings::TheSevenKing( ) ;
 echo Trones::TheDragenOfMather( ) ;
 echo People ::ThePeople( ) ;


正确答案是:7国征战 内斗,平民死伤无数,龙女想乘机渔翁得利;可惜最终谁也没有得到皇冠和胜利。哈哈。

当static 碰到 private ,结合产生复杂,也产生美;就像抽象的人,像我们大学老师讲的数学课;(不过网易的公开数学课很好)

如果想要龙女 获得最后的胜利, 你只要帮她一把 将13行的 $this->getFire() 这部分去掉就可以了。同样的道理 你无法在一个静态函数里 使用任何对象操作符。

Qu'est-ce que c'est ? 你去奋斗吧!

如果你不构建大型的框架和网站 这些概念比如 Interface Implémenter le résumé 。。。 你还是不知道的好。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn