구문의 차이점: 1. PHP는 정의 함수를 사용하여 상수를 정의하지만 C 언어는 그렇지 않습니다. 2. PHP의 모든 변수 이름 앞에는 C 언어에서 사용되지 않는 "$"가 와야 합니다. 상수나 변수를 사용하지 않습니다. 사용하기 전에 정의해야 합니다(클래스의 변수 제외).
이 튜토리얼의 운영 환경 : Windows7 System, PHP7.1 && C99 버전, DELL G3 COMPUTERITY, PHP와 C LANGUGESTANTS의 차이점 PHP의 상수의 차이 이 방법은 C를 배우는 사람들에게는 다소 믿기 어려울 것 같습니다. 실제로 정의 함수를 사용하여 구현됩니다. PHP의 함수는 정말 강력합니다. 나중에 우리는 배열 정의도 함수로 완료된다는 것을 알게 될 것입니다. 풍부한 기능을 통해 PHP를 사용하기 쉽고 강력하게 만듭니다.
함수 프로토타입 정의: bool 정의(문자열 이름, 값, [, bool case_insensitive])
세 번째 매개변수가 TRUE이면 상수 이름이 대소문자를 구분하지 않는다는 의미이고, 그 반대의 경우도 마찬가지입니다. . 민감함, 기본값은 민감함입니다. 우리는 관례를 따르고 상수 이름의 대소문자를 구분하는 것이 좋습니다. 예:
<?php define(“C1”,”Hello PHP World!”); echo C1; ?>
위 코드의 실행 결과는 상수 C1(Hello PHP World!)의 값을 출력하는 것입니다. 그런데 <?php
와 ?>
는 PHP 코드와 HTML 코드를 구분하는 구분 기호입니다. 게다가, PHP의 주석 기호는 C의 주석 기호와 동일합니다. 여러분도 알아야 하지만 자세히 설명하지는 않겠습니다... 이 에코는 C의 printf 또는 C++의 cout은 형식이 지정된 출력이 아닙니다. 형식을 지정하는 것은 매우 쉽습니다. 예를 들어 출력 후 줄을 끊으려면 를 작성하면 됩니다. Define("C1","Hello PHP World!< ;br>”);
알겠습니다. PHP는 개행 문자로 'n'도 지원하지만 그 의미는 HTML에서 Enter를 누르는 것과 동일하며 브라우저에서는 여전히 한 줄로 나타납니다.
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!)。
这里顺便介绍一下,<?php
和?>
是PHP代码的定界符,将PHP代码同HTML代码区分出来,PHP代码的语句以分号结束,这是我们习惯的,另外PHP的注释符号也与C一样,你该知道的,我就不说了……这个echo就相当于C的printf或C++的cout,但是严格地说不是格式化的输出,要想格式化也很容易,你把HTML代码写进去就行了,比如你要输出结束后换行,那你就写成define(“C1”,”Hello PHP World!<br>”);
C와 마찬가지로 PHP 변수 이름은 대소문자를 구분하며 명명 방법은 C 식별자의 명명 원칙을 따릅니다. 기억하시나요?
C++과 참조 개념을 알고 있다면 다음 단락을 건너뛰어도 됩니다. PHP도 참조를 지원한다는 점만 기억하세요. 그렇지 않은 경우에는 시간을 내어 다음 단락을 읽거나 C++ 참조의 개념을 살펴보세요.echo “The value of $var1 is ”.$var1.”<br>”;
The value of 200 is 200
<?php $a=1; function func() { echo "The value of a is:".$a; } func(); ?>
변수의 범위
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视频教程》
위 내용은 PHP 구문과 C의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!