导读跟大家讲解下有关php的语法和c有什么区别,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说php的语法和c有什么区别,小编
跟大家讲解下有关php的语法和c有什么区别,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说php的语法和c有什么区别,小编也收集到了有关php的语法和c有什么区别的相关资料,希望大家看到了会喜欢。
大灰狼与小白兔的故事语法上的区别:1、PHP使用define函数来定义常量c语言不是;2、php的所有的变量名前都要带个“$”c语言不用;3、PHP不管常量还是变量都不需要先定义后使用(类中的变量除外)。
本教程操作环境:windows7系统、PHP7.1&&c99版DELL G3电脑
语法上php和C语言的区别
常量
在PHP中定义常量的方式在学习C的人看来有点不可思议竟然是用一个define函数实现的PHP的函数实在是太厉害天河城广场了后面我们会看到定义数组也是由函数完成的我们真得感谢PHP无比丰富的函数库它们成就了PHP的易用和强大。
define函数原型:bool define(string namevalue[bool ca_innsitive])
第三个参数如果是TRUE则表娜美图片示常量名是大小写不敏感的反之就是敏感的默认是敏感的。我们还是遵照习惯保持常量名称大小写敏感吧。
例:
<?php define(“C1”,”Hello PHP World!”); echo C1;?>
以上代码的运行结果是输出常量C1的值(Hello PHP World!)。
这里顺便介绍一下<?php
和?>
是PHP代码的定界符将PHP代码同HTML代码区分出来PHP代码的语句以分号结束这是我们习惯的另外PHP的注释符号也与C一样你该知道的我就不说了……这个echo就相当于C的printf或C++的cout但是严格地说不是格式化的输出要想格式化也很容易你把HT镇海中学全国排名ML代码写进去就行了比如你要输出结束后换行那你就写成define(“C1”,”Hello PHP World!<br>”);
好了。注意PHP也支持‘\n’作为换行符但是它的含义仅仅相当于在HTML里敲个回车浏览器里看还是在一行上的。
变量
除了不用定义C语言用户最不习惯的就是所有的变量名前都要带个$你可能会抱怨PHP的设计者太财迷了但抱怨完了你还得这么写写PHP程序Shift键的使用率陡增!我突然发现一个这样做的好处是:常量不带$因此常量与变量的区分变得很明显更重要的是你再也不用担心自定义变量名同PHP关键字冲突了你可以定义一个变量叫$if$for等(当然正式情况下还是不要这样做的好过过瘾就行了)。
与C相同的是PHP的变量名是大小写敏感的并且命名方式遵循C标识符的命名原则还记得吗
如果你懂点C++知道引用的概念下面这段就可以跳过只要记住PHP也支持引用。否则花点时间看下面这段或是去看看C++引用的概念也行。
<?php$var1=100;$var2=&$var1;$var2=200;echo $var1.”<br>”;echo $var2;?>
这段代码的运行结果是输出两个200分别是$var1和 $var2的值输出的时候为了清楚加了个换行符PHP海的作文里句点(.)是字符串的连接符。
为什么只给$var2赋了200而$var1也变成了200呢你还可以试试只改变$var1的值你会发现这两个变量似乎被绑在一起了。其实语句$var2=&$var1;中的&符号的含义是将变量名$var2也指向$var1所在的存储空间也就是说$var2并不是一个新变量而是$var1的另一个名字它们对应的是同一段内存空间不管使用谁都是访问的同一个变量$var2就叫做对$var1的引用。引用有什么好处以后再说。C语言的基本概念(变量名、变量地址、变量值)清楚的话理解起来应该没有什么困难如果基本概念不清楚还是先“温故”再“知新”吧。
顺便说一个有意思的事如果你在把上面的echo语句写成:
echo “The value of $var1 is ”.$var1.”<br>”;
那么你得到的输出将是:
The value of 200 is 200
还记得吗在初学C语言时你很可能犯过把变量名放在字符串里想输出它的值结果得到的是变量名而现在你的“理想”实现了而你却又不习惯了呵呵。原来PHP在使用双引号作为字符串的定界符时会自动把变量名替换成相应的值这样的做法使得我们输出含变量的字符串时变得非常方便一对双引号下来就可以了。如果你想保持变量名原样输出那么可以用单引号做字符串的定界符(当然还有其它办法你可以仔细研究一下PHP的字符串)。还是要感谢C的严格要求如果C像PHP这样的话我们恐怕到现在也搞不清变量名、变量值这些概念。
变量的作用域
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等价于 $newnameecho $a;?>
运算符和表达式
PHP在运算符和表达式方面和C极其类似有算术、逻辑、关系、位运算符及相应的表达式也有条件运算符(:)及其表达式同样还是我们开始提到的那个思想实用为上很多限制被取消了相对较宽松。举个例子:
<?php$a="1";$b=1;if ($a==$b) echo "Equal!";el 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中文网
本文发布于:2023-02-25 03:00:33,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/167726523435352.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:互联网常识:php的语法和c有什么区别.doc
本文 PDF 下载地址:互联网常识:php的语法和c有什么区别.pdf
留言与评论(共有 0 条评论) |