从C语言快速学PHP
PHP是解释性语言,是Web开发中常用的语言。对于web编程,建议学习时参考w3cschool的在线api手册。
PHP和C语言及其相似,懂C的人只要稍加学习就能写出简单的PHP程序。以下是PHP与C语言语法不同的地方:
- 1.常量
在 PHP 中通过define()函数定义一个常量。合法的常量名只能以字母和下划线开始,后面可以跟着任意字母、数字或下划线。常量一旦定义就不能再修改或者取消定义。
如:define("PI",3.14);定义一个常量,$area = PI*R*R; 计算圆的面积。
define不能在类中定义常量,类里面需要用const constant = ‘constant value';定义常量。
- 2.变量
PHP 中使用美元符($)后跟变量名来表示一个变量,如$var 就是一个变量。PHP 属于弱类型语言,变量据程序上下文环境决定变量的数据类型。也就是说,在定义变量时,不需要明确指定变量的类型,把一个整数指定给变量$v,那么$v 就是一个整型变量。 若要转换类型,可以像C语言一样在要转换的变量之前加上目标类型,PHP 中允许的强制类型转换有: (int),(integer)——转换成整型。 (bool),(boolean)——转换成bool型; (float),(double),(real)——转换成浮点型; (string)——转换成字符串; (array)——转换成数组; (object)——转换成对象。
PHP 支持八种原始类型(type)。
四种标量类型:
string(字符串)
integer(整型)
float(浮点型,也作 double )
boolean(布尔型)
两种复合类型:
array(数组)
object(对象)
两种特殊类型:
resource(资源)
NULL(空)
在 PHP 中,可以通过以下函数对变量的类型做判断,如函数 is_integer判断变量是否为整数,其他的类似的函数有is_string,is_double,is_array。也可以使用预定义函数gettype 取得一个变量的类型,使用预定义函数 settype 设置一个变量的类型。
另外,可以使用预定义函数 isset 判断一个变量是否已经定义,使用 unset 语句删除一个变量。
局部变量在所存在的函数内部有效,全局变量作用域是文件作用域(限于单个PHP文件),若局部变量同全局 变量重名,同C的处理方式,全局的被屏蔽。稍微麻烦一点的是,要想在函数内访问全局变量,需使用global关键字声明,否则的话PHP就认为是一个与全 局变量同名的局部变量。
PHP 提供了大量的预定义变量,可以在程序或文件的任何地方使用它们,如$GLOBALS、$SERVER、$_GET、$_POST、$_FILE,$_COOKIE。
可变变量是 PHP 中比较特别的一个概念,可变变量是指这样一个变量,它将某个变量的值作为自己的变量名,如:$a = 'hello';$$a = 'world';echo "${$a}"输出的就是world。
ps:PHP同样是大小写敏感的,PHP有引用,但是没有指针,不过有类似指针的object类型。
- 3.数组
PHP的数组元素是可以动态增长的,这是C里面不敢想的。为数组增加一个元素很简单,同访问数组元素一样,只不过键名是新的或者为空,如 $arr[new]=3; 或 $arr[]=3,这样做的结果是PHP为数组$arr增加一个键名为new的元素其值为3,若键名为空,则以当前整型键名的最大值加1作为默认的键名分配给新的元素。
- 4.表达式和运算符
和C语言中的一样。PHP中多了"==="表示全等,"."表示字符串连接。"xor"表示逻辑异或。
- 5.语句
PHP和C语言一样,有着if, else, elseif ,switch, while, do-while, for, break, continue, goto等控制语句。注意PHP中写为elseif ,而C语言中式else if;另外PHP引进了foreach 这种控制语句。
- 函数定义与调用
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
和C语言相比,多了function声明,如果需要返回值,直接在函数体里面return value就可以了。
- PHP 分隔符
因为 PHP 是嵌入式脚本语言,需要使用某种分隔符将 PHP 代码和 HTML 的内容区分开来,这里所说的分隔符就是“<?php”和“?>”,它们将 PHP 代码包含在其中,也就是说,所有的 PHP代码都应该写在“<?php”和“?>”之间。
- 程序注释
和c语言一样,只是增加了#号作为单行注释,原来的//单行注释依然有效。
- 类的定义和使用
class Employee
{
private $name;
private $title;
protected $wage; protected function clockIn() {
echo "Member $this->name clocked in at ".date("h:i:s");
} protected function clockOut() {
echo "Member $this->name clocked out at ".date("h:i:s");
}
}
类的实例化和使用:
object = new class_name(); object->var_name;
object->function_name;
如果要在定义的类里面访问成员的属性或者方法,可以使用伪变量 $this 。$this 用于表示当前对象或对象本身 。
从C语言快速学PHP的更多相关文章
- 小C的故事(快速学C语言,,,极速版!)
前几天这篇博客写了太多废话! 删啦~~. 本篇博客只是为chd A协的全嫩小鲜肉入门C语言的预科, 如果你在此处学习C语言, 不幸走火入魔, 小弱概不负责. //请直接随便找个C语言编译器,抄一下下面 ...
- Swift语言快速入门
Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著 ISBN 978-7-121-24328-8 201 ...
- C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
C 语言作为大学理工科专业的必修,是很多同学走进编程世界的第一课.那么怎样才能更好的入门 C 语言呢? 下面整理了 21 个 C 语言练手项目,从基础语法开始,逐步深入,通过一个个练手项目,让你轻松驰 ...
- c语言快速入门3
如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 c语言快速入门1 c语言快速入门2 3.4.1 字符和字符串 字符:'' 单个 ...
- c语言快速入门2
如果你想快速入门计算机,可以参考我的上一篇帖子,先了解一些必备的软知识,然后再来进行语言的快速入门 计算机入门基础知识 c语言快速入门1 1.1.12 函数的概念 函数的定义:c语言的基本单位,c语言 ...
- [SQL]SQL语言入门级教材_SQL语言快速入门(五)
SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...
- 2018年如何快速学Java
前言 只有光头才能变强 提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获. 一.为什么我要写下这篇文章 1.1直接缘由: 在今天(2018年11月4日)有个同学给我 ...
- C#语言————第二章 C#语言快速热身
第二章 C#语言快速热身 ***********一.选择结构**************** 1:if选择结构与java的if选择结构语法完全相同 2:switch选择结构 ①:常量表达式的值可 ...
- Dart语言快速学习上手(新手上路)
Dart语言快速学习上手(新手上路) // 声明返回值 int add(int a, int b) { return a + b; } // 不声明返回值 add2(int a, int b) { r ...
随机推荐
- 【iCore3 双核心板_FPGA】实验十七:基于I2C总线的ARM与FPGA通信实验
实验指导书及代码包下载: http://pan.baidu.com/s/1dFqddMp iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- You and Your Research(Chinese)
转自:http://lyxh-2003.iteye.com/blog/434014 这是大科学家Richard Hamming的著名讲演,于1986年在贝尔通讯研究中心给200多名Bellcore的科 ...
- Cocos2dx淌坑日记:粒子系统PositionType的正确使用
Cocos2dx中的粒子系统,有三种定位方式,对应于不同需求. 之前我有一个想做的效果,是类似彗星的扫尾.但是当父节点也就是CCLayer跟着物体移动的时候,发现尾巴并没有跟随CCLayer移动,而是 ...
- 经验分享:Xcode 创建.a和framework静态库【转】
作者:Haley_Wong 最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态 ...
- usb mass storage
使用otg端口进行usb slave的测试,需要安装g_file_storage.ko或者g_mass_storage.ko模块. 参考链接 http://blog.csdn.net/freeman1 ...
- CSS手动制作三角形图标
1.需要哪个三角形就 <meta charset="UTF-8"> <title>Title</title> <style> div ...
- vi全局替换
http://blog.csdn.net/vindak/article/details/7830547 vi全局替换命令
- ligerui_ligerTree_006_ligerui事件支持
ligerui:ligerTree事件支持: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt [ ...
- 解决Firefox浏览器每次打开都弹出导入向导的问题
每次打开Firefox浏览器都会弹出导入向导这个页面,只有这个页面关闭后,Firefox界面才会打开. 解决办法: C:\Users\{用户名}\AppData\Roaming\Mozilla\Fir ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(31)-MVC使用RDL报表
系列目录 这次我们来演示MVC3怎么显示RDL报表,坑爹的微软把MVC升级到5都木有良好的支持报表,让MVC在某些领域趋于短板 我们只能通过一些方式来使用rdl报表. Razor视图不支持asp.ne ...