Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen PHP-Syntax und C?

Was ist der Unterschied zwischen PHP-Syntax und C?

青灯夜游
青灯夜游Original
2021-03-30 10:24:261804Durchsuche

Unterschiede in der Syntax: 1. PHP verwendet die Definitionsfunktion, um Konstanten zu definieren, die C-Sprache jedoch nicht. 2. Allen Variablennamen in PHP muss ein „$“ vorangestellt werden, das in der C-Sprache nicht verwendet wird verwendet weder Konstanten noch Variablen. Müssen vor der Verwendung definiert werden (außer Variablen in Klassen).

Was ist der Unterschied zwischen PHP-Syntax und C?

Die Betriebsumgebung dieses Tutorials: Windows7-System, PHP7.1- und C99-Version, DELL G3-Computer PHP Die Methode scheint für Leute, die C lernen, etwas unglaublich. Sie wird tatsächlich mithilfe einer Definitionsfunktion implementiert. Später werden wir sehen, dass die Definition von Arrays auch durch Funktionen vervollständigt wird Umfangreiche Funktionen machen PHP benutzerfreundlich und leistungsstark.

Funktionsprototyp definieren: bool define(string name, value, [, bool case_insensitive])Wenn der dritte Parameter TRUE ist, bedeutet dies, dass beim Konstantennamen die Groß-/Kleinschreibung nicht beachtet wird und umgekehrt . Sensibel, die Standardeinstellung ist sensitiv. Wir sollten besser dem Brauch folgen und die Groß-/Kleinschreibung bei Konstantennamen beachten. Beispiel:

<?php
  define(“C1”,”Hello PHP World!”);
  echo C1;
?>

Das laufende Ergebnis des obigen Codes ist die Ausgabe des Werts der Konstante C1 (Hallo PHP-Welt!). Übrigens sind 7a350bf83e7a0e77b615a6fa88b2483a die Trennzeichen von PHP-Code, die PHP-Code von HTML-Code unterscheiden. Die Anweisungen von PHP-Code Es endet mit einem Semikolon, wie wir es gewohnt sind. Außerdem sind die Kommentarsymbole von PHP die gleichen wie die von C. Das sollten Sie wissen, aber ich werde nicht auf Details eingehen ... Dieses Echo entspricht dem printf or von C C++'s cout, aber genau genommen handelt es sich nicht um eine formatierte Ausgabe. Sie müssen lediglich den HTML-Code schreiben. Wenn Sie beispielsweise die Zeile umbrechen möchten, können Sie schreiben define("C1","Hallo PHP-Welt!&lt ;br>");Okay. Beachten Sie, dass PHP auch „n“ als Zeilenumbruchzeichen unterstützt, seine Bedeutung jedoch nur dem Drücken der Eingabetaste in HTML entspricht und es weiterhin in einer Zeile im Browser angezeigt wird.

Variablen

bool define(string name,value,[,bool case_insensitive])

第三个参数如果是TRUE,则表示常量名是大小写不敏感的,反之就是敏感的,默认是敏感的。我们还是遵照习惯,保持常量名称大小写敏感吧。

例: 

<?php
$var1=100;
$var2=&$var1;
$var2=200;
echo $var1.”<br>”;
echo $var2;
?>

以上代码的运行结果是输出常量C1的值(Hello PHP World!)。

这里顺便介绍一下,8d8e2522a1f26fe88db102708ab49a31是PHP代码的定界符,将PHP代码同HTML代码区分出来,PHP代码的语句以分号结束,这是我们习惯的,另外PHP的注释符号也与C一样,你该知道的,我就不说了……这个echo就相当于C的printf或C++的cout,但是严格地说不是格式化的输出,要想格式化也很容易,你把HTML代码写进去就行了,比如你要输出结束后换行,那你就写成define(“C1”,”Hello PHP World!0c6dc11e160d3b678d68754cc175188a”);

Das Ungewöhnlichste für Benutzer der C-Sprache ist nicht nur, dass allen Variablennamen ein $ vorangestellt werden muss. Sie können sich darüber beschweren, dass die Designer von PHP zu geldgierig sind. Aber nachdem Sie sich beschwert haben, müssen Sie immer noch so schreiben: Beim Schreiben von PHP-Programmen nimmt die Verwendung der Umschalttaste dramatisch zu! Ich habe plötzlich einen Vorteil darin entdeckt: Konstanten haben kein $, sodass der Unterschied zwischen Konstanten und Variablen offensichtlich ist. Noch wichtiger ist, dass Sie sich keine Sorgen mehr machen müssen, dass benutzerdefinierte Variablennamen mit PHP-Schlüsselwörtern in Konflikt stehen $if, $for usw. (Natürlich ist es besser, dies nicht in formellen Situationen zu tun, sondern es einfach zu genießen).

Wie bei C wird bei PHP-Variablennamen die Groß-/Kleinschreibung beachtet und die Benennungsmethode folgt den Benennungsprinzipien von C-Bezeichnern, erinnern Sie sich?

Wenn Sie sich mit C++ und dem Konzept der Referenzen auskennen, können Sie den folgenden Absatz überspringen. Denken Sie jedoch daran, dass PHP auch Referenzen unterstützt. Nehmen Sie sich andernfalls etwas Zeit, um den folgenden Absatz zu lesen oder einen Blick auf das Konzept der C++-Referenzen zu werfen.

echo “The value of $var1 is ”.$var1.”<br>”;

Das Ergebnis der Ausführung dieses Codes ist die Ausgabe von zwei 200ern, die die Werte von $var1 und $var2 darstellen. Aus Gründen der Übersichtlichkeit wird während der Ausgabe ein Punkt (.) hinzugefügt Verbinder von Saiten.

Warum wird $var2 nur 200 zugewiesen und $var1 wird auch zu 200? Sie können auch versuchen, nur den Wert von $var1 zu ändern, und Sie werden feststellen, dass diese beiden Variablen miteinander verbunden zu sein scheinen. Tatsächlich besteht die Bedeutung des kaufmännischen Und in der Anweisung $var2=&$var1; darin, den Variablennamen $var2 auf den Speicherplatz zu verweisen, in dem sich $var1 befindet. Das heißt, $var2 ist keine neue Variable, sondern Ein anderer Name von $var1 entspricht demselben Speicherplatz, und unabhängig davon, wer ihn verwendet, wird $var2 als Referenz auf $var1 bezeichnet. Welche Vorteile hat das Zitieren? Weiteres folgt später. Wenn die Grundkonzepte der C-Sprache (Variablenname, Variablenadresse, Variablenwert) klar sind, sollte es keine Schwierigkeiten geben, sie zu verstehen. Wenn die Grundkonzepte unklar sind, ist es besser, zuerst „die Vergangenheit zu überprüfen“ und dann „zu lernen“. das Neue“.

Übrigens ist es eine interessante Sache, wenn Sie die obige Echo-Anweisung wie folgt schreiben:

The value of 200 is 200

Dann erhalten Sie als Ausgabe:

<?php
$a=1;
function func()
{
   echo "The value of a is:".$a;
}
func();
?>

Denken Sie daran, als Sie zum ersten Mal die Sprache C gelernt haben, haben Sie wahrscheinlich den Fehler gemacht, die zu ändern Variablenname Wenn Sie es in einen String einfügen und seinen Wert ausgeben möchten, ist das Ergebnis ein Variablenname. Jetzt ist Ihr „Ideal“ verwirklicht, aber Sie sind nicht daran gewöhnt, haha. Es stellt sich heraus, dass PHP, wenn es doppelte Anführungszeichen als Trennzeichen einer Zeichenfolge verwendet, den Variablennamen automatisch durch den entsprechenden Wert ersetzt. Dieser Ansatz macht es für uns sehr praktisch, eine Zeichenfolge auszugeben, die nur ein Paar doppelter Anführungszeichen enthält . Wenn Sie den ausgegebenen Variablennamen unverändert lassen möchten, können Sie einfache Anführungszeichen als Trennzeichen für die Zeichenfolge verwenden (natürlich gibt es auch andere Möglichkeiten, Sie können PHP-Zeichenfolgen sorgfältig studieren). Wir müssen C immer noch für seine strengen Anforderungen danken. Wenn C wie PHP wäre, wären wir möglicherweise immer noch nicht in der Lage, die Konzepte von Variablennamen und Variablenwerten herauszufinden.

Variablenumfang

PHP的变量作用域与C很类似,在此不准备多说。局部变量在所存在的函数内部有效,全局变量作用域是文件作用域(限于单个PHP文件),若局部变量同全局变量重名,同C的处理方式,全局的被屏蔽。稍微麻烦一点的是,要想在函数内访问全局变量,需使用global关键字声明,否则的话PHP就认为是一个与全局变量同名的局部变量。 

<?php
$a=1;
function func()
{
   echo "The value of a is:".$a;
}
func();
?>

以上代码没有输出1,为什么呢?PHP把函数里的$a看作是一个全新的局部变量,此$a非彼$a(函数体外的全局变量),此$a未赋值,因此输出为空。如果我们要想在函数体内部访问全局变量$a的值,须在访问之前声明一句:global $a; 这样PHP就知道要访问的是全局变量$a了。

还有一种方法是利用PHP的系统数组$GLOBALS,该数组是PHP系统自动生成和维护的,它记录了所有全局变量。echo $GLOBALS[“a”]; 即可输出其中$a的值。

PHP的静态变量仅在局部函数域中存在,同C是完全相同的。

PHP有一种特殊的动态变量,名字听起来很容易让人认为就是C语言的普通变量(动态的、局部的),但这个动态的含义有点特殊,它是指变量名可以动态赋予!也就是说,可以让应用程序的最终用户为变量指定名字! 

<?php
$a="newname";
a="content";//newname本是$a的值,但是a的含义是以$a的值为名的变量
echo $newname; //$$a等价于 $newname
echo $a;
?>

运算符和表达式

PHP在运算符和表达式方面和C极其类似,有算术、逻辑、关系、位运算符及相应的表达式,也有条件运算符(:?)及其表达式,同样还是我们开始提到的那个思想,实用为上,很多限制被取消了,相对较宽松。举个例子: 

<?php
$a="1";
$b=1;
if ($a==$b) echo "Equal!";
else echo "Not Euqal!";
?>

按照C的思维方式来看,$a是字符,$b是整型,两者比较是字符的ASCII码值与整数比较,显然不等,而PHP运行结果却是“Equal!”,看到这里,是不是有点冲破封建大家庭的礼教与心上人私奔的感觉?呵呵,抑或是惊呼PHP无法无天?接下来还有让你目瞪口呆的,若$a="1e3"; $b=1000; 依然是“Equal!”,也就是说PHP在比较时能自动将字符串“按照人的理解方式”进行转换,1e3不就是科学计数法表示的1000吗?甚至$a=”1e3HelloWorld”;都会相等,PHP将字符串转换为数值时会自动截取全部它能理解为数值的部分!其实C也允许跨越数据类型的比较,比如字符型和整型比较,C也会自动转换类型,但它是“按照计算机的思维方式”转换的,因为字符在计算机里就是按照ASCII码存储的。

PHP的“人性化”也带来了麻烦,当我们想严格比较两个变量的时候怎么办呢?于是PHP提供了一对特殊的运算符:全等(===)和非全等(!==),只有当值相当且数据类型相同时,才叫全等,两者有一不符,则非全等。此时,即使1与1.0也是非全等的,原因你一定知道吧。如果你觉得只有这样才踏实,那么恭喜你,你已经被C洗脑了。

运算符有优先级和结合性的概念,这方面和C是类似的,你也许记不清所有的优先级关系,但是没关系,我们有括号呢。

PHP的数据类型

PHP与C的一个显著不同是:不管常量还是变量都不需要先定义后使用(类中的变量除外),PHP根据第一次赋值的情况自动决定数据类型。想想当年学习C语言的时候,我们曾感到先定义后使用很麻烦(但是“长大后”(我是指学会C后)都体会到了它的好处),常常忘记定义,而现在少了这条规矩,反而有点不适应了。

PHP的基本变量类型有整型(Integer)、浮点型(Float)、字符串(String)(这是C没有的,但C++有String类)以及布尔型(Boolean)(C没有,但是C++有)。构造类型有数组和对象。此外还有两个特殊类型:空值(NULL)(C也有)和资源(Resource)。

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP-Syntax und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Vorheriger Artikel:Verwendung von PHP EOFNächster Artikel:Verwendung von PHP EOF