Heim  >  Artikel  >  php教程  >  Zusammenfassung der Grundkenntnisse der PHP_php-Grundlagen

Zusammenfassung der Grundkenntnisse der PHP_php-Grundlagen

WBOY
WBOYOriginal
2016-05-16 09:00:071991Durchsuche

Einige dieser PHP-Konzepte sind zunächst schwer zu verstehen. Ich liste sie alle auf, in der Hoffnung, einigen Menschen zu helfen und Hindernisse auf dem Weg nach vorne zu beseitigen.

1. Variable Variablen

variable_variables.php

Code kopieren Der Code lautet wie folgt:

$a = 'Hallo ';
$hello = 'Hallo alle zusammen';

echo $$a.'
';

$b = 'John';
$c = 'Mary';
$e = 'Joe';

$students = array('b','c','e');

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

$a = 'hello';

Weisen Sie der Variablen $a „Hallo“ zu, also $$a = ${hello} = $hello = 'Hallo an alle';

Bei $$students[1] führt dies zu Verwirrung und der PHP-Interpreter kann es möglicherweise nicht verstehen. Obwohl „[“ einen höheren Operator hat, wird das Ergebnis möglicherweise nicht ausgegeben.

Eine gute Schreibweise ist: ${$students[1]} = ‚Mary‘;

2. Array-Funktion (Array-Funktion)

array_functions.php

Code kopieren Der Code lautet wie folgt:
echo ' ';
$numbers = array(1,2,3,4,5,6);
print_r($numbers);
echo '< ;br / >';
// verschiebt das erste Element aus einem Array

// der Index wird zurückgesetzt
$a = array_shift($numbers);

echo 'a: '.$a.'
';

print_r($numbers);

// Element an den Anfang des Arrays schieben

// gibt die Anzahl des Arrays zurück und setzt den Array-Index zurück
$b = array_unshift($numbers, 'first');
echo '
b: '.$b.'
';
print_r($numbers);

echo '
';

echo '

pop & push

';
// letztes Element aus dem Array entfernen
$c = array_pop($numbers);
print_r($numbers);
echo '
';

// Schiebe das Element an das letzte Array

$d = array_push($numbers, 'last');
echo 'd: '.$d.'
';

print_r($numbers);




Weitere Array-Funktionsreferenzen

3. Datum und Uhrzeit (Uhrzeit und Datum)
Es gibt 3 Möglichkeiten, eine Unix-Zeit zu erstellen (Anzahl der Sekunden vom 1.1.1970 bis heute)

time(); Gibt den aktuellen Zeitstempel zurück

mktime($hr, $min, $sec, $month, $day, $mktime(6,30,0,5,22 , 2012) Gibt den Zeitstempel von 2012 zurück. 22.05. 6:30:00

strtotime($string); strtotime("+1 Tag") Gibt den Zeitstempel dieser Zeit von morgen zurück, mehr 'last Monday' ' Lasy Year '

checkdate($month, $day, $year); Überprüfen Sie, ob ein Datum wahr ist. checkdate(5,32,2012) ? 'true' : 'false'; // return false

Nachdem wir den Zeitstempel erhalten haben, müssen wir ihn in einen lesbaren Zustand umwandeln, z. B. 22.05.2012

Wir haben zwei Methoden: date($format, $timestamp); )

Es wird empfohlen, den zweiten Typ zu verwenden, strftime("%Y-%m-%d %H:%M:%S"); 40


Mehr Zeit- und Datumsangaben

5. Servervariablen (Server- und Ausführungsumgebungsinformationen)
$_SERVER

server_variables.php


Code kopieren Der Code lautet wie folgt:

echo 'SERVERdetails:
' ;'
echo 'SERVER_NAME: '.$_SERVER['SERVER_NAME'].'
' br /> ;';
echo 'SERVER_PORT: '.$_SERVER['SERVER_PORT'].'
';
';
echo '
';

echo 'Seitendetails:
'; _SERVER['REMOTE_ADDR'].'
'
echo 'REMORT_PORT: '.$_SERVER['REMOTE_PORT'].'
'; .$_SERVER ['REQUEST_URI'].'
';'; : '. $_SERVER['REQUEST_METHOD'].'
echo 'REQUEST_TIME: '.$_SERVER['REQUEST_TIME'].'
echo 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'].'
'
echo '
';

Weitere Details

6.variable_scope (Bereich der globalen statischen Variablen)

static_variables.php

Code kopieren Der Code lautet wie folgt:

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 '
';

Die Variable $a in der Funktion test() speichert das Ergebnis von $a++ nicht und wiederholte Aufrufe von test() erhöhen den Wert von $a nicht

Die Variable $a in der Funktion test1() deklariert staic $a = 0, was eine statische Variable ist.

Zitat: Eine statische Variable existiert nur in einem lokalen Funktionsbereich, verliert jedoch ihren Wert nicht, wenn die Programmausführung diesen Bereich verlässt.

Eine statische Variable kann nur im lokalen Funktionsbereich, also im Funktionskörper test1(), existieren, aber wenn das Programm den test1()-Bereich verlässt, verliert die statische Variable ihren Wert, also das $, nicht eine Variable wird um 1 erhöht; wenn test1() erneut aufgerufen wird, $a = 1;

global_variables.php

Code kopieren Der Code lautet wie folgt:

$a = 1;
$b = 2;

Funktion Sum()
{
global $a, $b;

$b = $a + $b;
}

Sum();
echo $b;
echo '


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

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

Sum1();
echo $b;

Zitat: In PHP müssen globale Variablen innerhalb einer Funktion als global deklariert werden, wenn sie in dieser Funktion verwendet werden sollen

Wenn diese Variablen in einer Funktion verwendet werden, müssen die globalen Variablen in dieser Funktion definiert werden. Dadurch kann viel Ärger vermieden werden.

Weitere Details

7.reference(reference)

variable_reference.php

Code kopieren Der Code lautet wie folgt:

$a = 'arist';
$b = $ a ;
$b = 'ming';
echo „Mein Name ist:{$a}. Aber meine Mutter nennt mich {$b}.
“; echo '
'; „Mein Name ist:{$a}. Und meine Mutter nennt mich {$b}.




Dieses Konzept kann so verstanden werden, meine Mutter nennt mich Mingming, aber mein Chef wird mich Xiaoyan nennen; egal, ob es offensichtlich ist oder Xiaoyan, ich bin es.
'&' Und so nennen uns verschiedene Leute Aliase, also Referenzen, was äquivalent ist zu $a = {ich oder der Wert im Speicher}, $b = {Anführer, Mutter oder Variable}
Durch & zeigt $b auf den einzigen und gleichen Wert von $a im Speicher. Egal, wie Ihr Chef Sie nennt oder wie Ihre Mutter Sie nennt, Sie sind Sie selbst. Nur der Name ist anders.

Nachdem wir die Referenz übergeben haben, ändern wir den Wert von $b und auch den Wert von $a.

8. Referenzvariable an Funktion übergeben (Referenzparameter an Funktion übergeben)






Code kopieren

Der Code lautet wie folgt:
function ref_test(&$var){ return $var *= 2 } $a = 10;
ref_test($a);
echo $a;

Wenn wir Parameter per Referenz an Funktionen übergeben, ist dies nicht der Fall Übergeben von Variablen wird kopiert, aber der tatsächliche Wert

Wenn wir also die Funktion ref_test($a) aufrufen, wurde der Wert von $a geändert, sodass am Ende $a = 20; >9. Referenzfunktionsrückgabewert (Referenzfunktionsrückgabewert)

reference_function_return_value.php




Code kopieren


Der Code lautet wie folgt:

function &increment(){
static $var = 0;
$var++
return $var; $a =& inkrement(); // 2
$a++; // 4
echo "a: {$a }";



Deklarieren Sie zunächst eine Referenzfunktion. Deklarieren Sie im Funktionskörper eine statische Variable $var, die den erhöhten Wert speichern kann;

$a =& increment( ); Diese Anweisung ist der Rückgabewert der Variablen $a Referenzfunktion

ist derselbe wie die vorherige Referenzvariable this $ a = & $b;

Inkrement() und $a zeigen also beide auf denselben Wert.


Weitere Details



Objekt OOP
1.Schwerwiegender Fehler: Verwendung von $this, wenn nicht im Objektkontext
Dieser Fehler passiert definitiv leicht, wenn Sie OOP zum ersten Mal lernen, weil es ein Konzept gibt, das Sie nicht wirklich verstehen. Die Zugänglichkeit einer Klasse kann auch als Umfang bezeichnet werden. Man kann sich auch vorstellen, dass ein Chinese keiner Kultur angehört und keine Fremdsprachen spricht (vielleicht weiß er ein wenig, aber er kann es nicht). Kommunizieren Sie mit Ausländern, weil sie nicht im selben Land geboren sind. Wie ist der Fehler aufgetreten? Schauen Sie sich das Beispiel unten an:


Code kopieren

public $water = „Ich bin Wasser“;

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

static function Fire( ) {
return self: :$fire ; // Stellen Sie sicher, dass Sie self verwenden, um auf die statische Eigenschaft zuzugreifen, bevor Sie die Funktion aufrufen
}
}

/*
Schwerwiegender Fehler: Verwendung von $this when nicht im Objektkontext
*/
//echo Trones::getFire( ) ;
//echo Trones::getWater( ) ;

// korrekt
echo Trones: :Fire( );
echo "
" ;
$trones = new Trones ;
$trones->fire ; // Hinweis: Undefinierte Eigenschaft: Trones::$fire ( basierend auf verschiedenen Fehlereinstellungen) einfach ist Fehler
echo Trones::$fire ;



Dieser Fehler ist sehr klassisch und sehr praktisch. Schauen wir uns zunächst die Definition von Statik an:

Durch die Deklaration von Klasseneigenschaften oder -methoden als statisch kann auf sie zugegriffen werden, ohne dass eine Instanziierung der Klasse erforderlich ist. Auf eine als statisch deklarierte Eigenschaft kann nicht mit einem instanziierten Klassenobjekt zugegriffen werden (eine statische Methode jedoch schon).
Übersetzung: Wenn Sie die Eigenschaften oder Methoden einer Klasse als statisch definieren, können Sie direkt darauf zugreifen, ohne eine Klasse zu initialisieren. Auf eine als statisch definierte Eigenschaft können Objekte der Klasse nicht mit dem Objektoperator * -> * zugreifen (der Zugriff erfolgt über statische Methoden).

Beispielbeschreibung:

Zeile 7 und Zeile 10 haben den gleichen Fehler gemacht. Der erste besteht darin, den Objektoperator für den Zugriff auf statische Variablen zu verwenden. Wenn Sie sich die Definition ansehen, ist $this eine Pseudovariable, die einem Objekt, einer Instanz, entspricht. Wenn Sie den Objektoperator -> verwenden, um darauf zuzugreifen, wird ein Fehler gemeldet.

Ebenso können Sie den statischen Operator :: nicht verwenden, um auf eine öffentliche Variable zuzugreifen. Der korrekte Zugriff sollte die Zeilen 14 und 25 sein, auf eine wird in der Definition der Klasse zugegriffen (self:: === Trones::), und auf die andere wird außerhalb der Klasse zugegriffen.

Für geerbte Klassen gelten ebenfalls die oben genannten Regeln.

2.Schwerwiegender Fehler: Aufruf der privaten Methode

Es gibt kürzlich eine sehr interessante Fernsehserie mit dem Titel „Game of Thrones“. Wir gehen davon aus, dass es drei Parteien, sieben Könige, einfache Leute und eine Drachendame gibt. Die drei kämpften unten um den Endsieg, der die Krone darstellte.

Die folgende Geschichte hat auch einen Titel: Klassensichtbarkeit (Sichtbarkeit) Wenn Sie die endgültige Antwort kennen, können Sie den Erklärungsteil überspringen.


Code kopieren

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn