文档章节

PHP基础知识

ramosy
 ramosy
发布于 2015/08/17 18:34
字数 1565
阅读 103
收藏 10
点赞 0
评论 0

PHP_Manual参考手册阅读笔记

PHP Manual中文手册阅读笔记(一):PHP基础知识

语言参考:

基本语法:

PHP标记:

  1. 当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码。

  2. 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记

    <?php echo "Hello world" ; // ... more code echo "Last statement" ; // 脚本至此结束,并无 PHP 结束标记

PHP的数据类型

PHP 支持 8 种原始数据类型。

四种标量类型: 1.boolean (布尔型)
2.integer (整型)
3.float (浮点型,也称作 double )
4.string (字符串)

两种复合类型: 1.array (数组)
2.object (对象)

最后是两种特殊类型: 1.resource (资源)
2.NULL (无类型)

为了确保代码的易读性,本手册还介绍了一些伪类型: 1.mixed (混合类型)
2.number (数字类型)
3.callback (回调类型)

<?php
$a_bool  =  TRUE ;    // a boolean
 $a_str   =  "foo" ;   // a string
 $a_str2  =  'foo' ;   // a string
 $an_int  =  12 ;      // an integer

 echo  gettype ( $a_bool );  // prints out:  boolean
 echo  gettype ( $a_str );   // prints out:  string

// If this is an integer, increment it by four
 if ( is_int ( $an_int )) {
     $an_int  +=  4 ;
}

 // If $bool is a string, print it out
// (does not print out anything)
 if ( is_string ( $a_bool )) {
    echo  "String:  $a_bool " ;
}
 ?>

boolean (布尔型)

要指定一个布尔值,使用关键字 TRUE 或 FALSE 。两个都不区分大小写。 当转换为 boolean 时,以下值被认为是 FALSE

1.布尔值 FALSE  本身  
2.整型值 0(零)  
3.浮点型值 0.0(零)  
4. 空字符串,以及字符串 "0"  
5.不包括任何元素的数组  
6. 不包括任何成员变量的对象(仅 PHP 4.0 适用)  
7. 特殊类型 NULL(包括尚未赋值的变量)  
8. 从空标记生成的 SimpleXML 对象

integer (整型)

一个 integer 是集合 ? = {..., -2, -1, 0, 1, 2, ...} 中的一个数。 整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。 当从浮点数转换成整数时,将向下取整

<?php
var_dump ( 25 / 7 );          // float(3.5714285714286) 
 var_dump ((int) ( 25 / 7 ));  // int(3)
 var_dump ( round ( 25 / 7 ));   // float(4) 
 ?>

浮点型(也叫浮点数 float,双精度数 double 或实数 real)

浮点数的表示方法        
<?php
$a  =  1.234 ; 
 $b  =  1.2e3 ; 
 $c  =  7E-10 ;
 ?> 
比较浮点数方法
$a  和 $b  在小数点后五位精度内都是相等的。 
<?php
$a  =  1.23456789 ;
 $b  =  1.23456780 ;
 $epsilon  =  0.00001 ;

if( abs ( $a - $b ) <  $epsilon ) {
    echo  "true" ;
}
 ?>

string (字符串)

一个字符串可以用 4 种方式表达: 
1.单引号  
2.双引号  
3.heredoc 语法结构  
<?php
 class  foo  {
    public  $bar  = <<<EOT
 bar
    EOT;
}
?>

4.nowdoc 语法结构(自 PHP 5.3.0 起)

array (数组)

可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

array(  key =>  value
     , ...
     )
<?php
$array  = array(
     "foo"  =>  "bar" ,
     "bar"  =>  "foo" ,
);

 // 自 PHP 5.4 起
 $array  = [
     "foo"  =>  "bar" ,
     "bar"  =>  "foo" ,
];
 ?>

object (对象)

要创建一个新的对象 object ,使用 new 语句实例化一个类:

<?php
 class  foo
 {
    function  do_foo ()
    {
        echo  "Doing foo." ; 
    }
}

 $bar  = new  foo ;
 $bar -> do_foo ();
 ?>

resource (资源)

使用getresourcetype — 返回资源(resource)类型

此函数返回一个字符串,用于表示传递给它的 resource  的类型。如果参数不是合法的 resource ,将产生错误。 
<?php
$c  =  mysql_connect ();
echo  get_resource_type ( $c ). "\n" ;
 // 打印:mysql link

 $fp  =  fopen ( "foo" , "w" );
echo  get_resource_type ( $fp ). "\n" ;
 // 打印:file

 $doc  =  new_xmldoc ( "1.0" );
echo  get_resource_type ( $doc -> doc ). "\n" ;
 // 打印:domxml document
 ?>

NULL (无类型)

string (字符串)在下列情况下一个变量被认为是 NULL : 
1.被赋值为 NULL 。 
2.尚未被赋值。 
3.被 unset() 。

强制转换

允许的强制转换有: 
1.(int), (integer) - 转换为整形 integer   
2.(bool), (boolean) - 转换为布尔类型 boolean   
3.(float), (double), (real) - 转换为浮点型 float   
4.(string) - 转换为字符串 string   
5.(array) - 转换为数组 array   
6.(object) - 转换为对象 object   
7.(unset) - 转换为 NULL  (PHP 5)

PHP的变量

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。 
PHP 提供了大量的预定义变量。
PHP 可变变量

<?php
 class  foo  {
    var  $bar  =  'I am bar.' ;
    var  $arr  = array( 'I am A.' ,  'I am B.' ,  'I am C.' );
    var  $r    =  'I am r.' ;
}

 $foo  = new  foo ();
 $bar  =  'bar' ;
 $baz  = array( 'foo' ,  'bar' ,  'baz' ,  'quux' );
echo  $foo -> $bar  .  "\n" ;
echo  $foo -> $baz [ 1 ] .  "\n" ;

 $start  =  'b' ;
 $end    =  'ar' ;
echo  $foo ->{ $start  .  $end } .  "\n" ;

 $arr  =  'arr' ;
echo  $foo -> $arr [ 1 ] .  "\n" ;
echo  $foo ->{ $arr }[ 1 ] .  "\n" ;

 ?> 
来自 PHP 之外的变量【HTML 表单(GET 和 POST)】、REQUEST、HTTP Cookies
$userName = $_GET['username']; 
$userName = $_POST['username'];
$userName = $_REQUEST['username'];
setcookie ( "username" , "linfeng" ,  time ()+ 3600 );

PHP的常量

可以用 define() 函数来定义常量,在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。一个常量一旦被定义,就不能再改变或者取消定义。

常量和变量有如下不同:

  1. 常量前面没有美元符号($);

  2. 常量只能用 define() 函数定义,而不能通过赋值语句;

  3. 常量可以不用理会变量的作用域而在任何地方定义和访问;

  4. 常量一旦定义就不能被重新定义或者取消定义;

  5. 常量的值只能是标量。


Example #1 定义常量 
<?php
define ( "CONSTANT" ,  "Hello world." );
echo  CONSTANT ;  // outputs "Hello world."
 echo  Constant ;  // 输出 "Constant" 并发出一个提示级别错误信息
 ?>

Example #2 使用关键字 const 定义常量
<?php
 // 以下代码在 PHP 5.3.0 后可以正常工作
 const  CONSTANT  =  'Hello World' ;

echo  CONSTANT ;
 ?>

PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。(不区分大小写)

__LINE__        文件中的当前行号。

__FILE__        文件的完整路径和文件名。

__DIR__         文件所在的目录。

__FUNCTION__    函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。

__CLASS__       类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。

__TRAIT__       Trait 的名字(PHP 5.4.0 新加)。

__METHOD__      类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__   当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

© 著作权归作者所有

共有 人打赏支持
ramosy
粉丝 1
博文 6
码字总数 7724
作品 0
成都
程序员
PHP入门培训哪家机构教的好?就业靠谱么?

PHP 是一种 HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。因此,PHP程序员也是同类编程语言中较多的,而PHP的市场需求量也越来...

PHP那些事
2017/12/19
0
0
新手问题 php怎么读取和操作开放平台的数据

本人php新手,想了解开发平台的知识,需要具备哪些基础知识 了解基础的php的API知识,知道他是一种特殊的抽象类,相应的继承和实现方法也了解一些, 但是看到开放平台API介绍还是一片迷茫,感...

本源
2014/03/28
128
5
Tinywan/lua-nginx-redis

在线文档(Online documentation) 目录 Nginx 教程 (Nginx tutorial) Nginx编译安装 Nginx.conf详解和配置 Location 详解和配置 Nginx基础知识 Nginx高性能WEB服务器详解 Nginx高并发系统...

Tinywan
01/07
0
0
网管的未来出路与学习成长方向选择

一、基础网管的发展方向 1.可以学习CCNA(或同等认证的)向网络工程师方向发展 建议选择CCNA,理由如下: 1)模拟器种类多,技术成熟,路由和交换机类型多,H3C、华为模拟器相对少,可选路由...

hiyajun
2017/06/19
0
0
慕课分享:盘点2014年热门免费开发课程

这篇文章来自慕课网团队的分享,文章从前端开发、后端开发、移动开发和OS 四个方面,分享了2014年度的热门免费课程。 前端开发 《HTML+CSS基础课程》 这门课程从最基本的概念开始讲起,步步深...

2014/12/30
0
0
求PHP学习经验,请高手指点迷津

做过一年多ASP.NET,有一定编程基础;具备面向对象和数据库相关的知识. 现在专写js了,由于工作需要想往PHP方面钻研下. 我初步构想是:PHP和前端分离,PHP分层清楚(不管是DBE还是MVC),可复用的PHP...

sjunjun
2013/05/28
344
11
《PHP基础知识总结》系列-新鸟老鸟通吃

《PHP基础知识总结》文件夹收藏文章列表 总结PHP基础知识,对初学者还是高手都值得参考巩固。 1PHP检查库或函数是否可用的方法 2关于PHP5 Session生命周期介绍 3PHP页面和Mysql数据库的转UTF...

开元中国2015
2015/05/06
92
0
php对象克隆的实际意义

最近看php的基础知识看到一个关于php的克隆对象的知识点,感觉这个没什么太大的实际项目意义,请问大家只要有什么实际的意义吗?我们在实战项目中哪里可以体现出这个呢?

编程浪子走四方
2016/11/03
374
6
现货!《PHP7实践指南:o2o网站与App后台开发》京东天猫有售

终于发售了,啥也不想说了,喜欢的或需要的就点击 链接 进去购买吧。 另外此书将作为 2017 PHP全球开发者大会 现场活动用书 天猫购书 包邮 PHP7实践指南:O2O网站与App后台开发 数据库设计 PH...

szxy1234
2017/11/02
0
0
读《PHP和MySQL Web开发》

【第一部分】PHP基础与入门 1、PHP学习笔记1:基础知识快速浏览 http://my.oschina.net/bluefly/blog/472673 2、PHP学习笔记2:文件 http://my.oschina.net/bluefly/blog/477601 3、PHP学习笔...

slyso
2015/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql 主从复制中遇到的错误!

。。。。。

万建宁
15分钟前
0
0
DUBBO 详细介绍

摘要: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架...

明理萝
25分钟前
0
1
4 个快速的 Python 编译器 for 2018

简评:Python 和其他的解释型语言一样经常被吐槽性能不行,所以开发人员为了提升性能创建了不少编译器,本文则选取其中的四个做了基准测试。 Python 其实是一种相当快的语言,但它并不像编译...

极光推送
28分钟前
0
0
spring boot注册多个MQ服务器的问题

关于注册到多个MQ源的文章已经有很多了,这里记录一下声明queue的坑; 如果使用注册bean的方式声明queue,会导致声明的queue同时被注册到所有的MQ源上; //如果使用下面的声明方式,que...

placeholder
29分钟前
0
0
Java面试基础篇——第九篇:BIO,NIO,AIO的区别

现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO()。 先来看看BIO。 1. BIO 服务端接受到请求后,要指派或新建一个线程去处理客户端的IO请求,直到收到断开连接的指令。这么做...

developlee的潇洒人生
34分钟前
0
0
@RequestMapping @ResponseBody 和 @RequestBody 用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

特拉仔
36分钟前
1
0
基于 HTML5 结合互联网+ 的 3D 隧道

前言 目前,物资采购和人力成本是隧道业发展的两大瓶颈。比如依靠民间借贷,融资成本很高;采购价格不透明,没有增值税发票;还有项目管控和供应链管理的问题。成本在不断上升,利润在不断下...

xhload3d
38分钟前
0
0
济南小程序热度分析

原文链接:http://www.jnqianle.cn/company/2072.html

tianma3798
39分钟前
1
0
大数据软件

beats 采集 kafka spark hive es grafana zeppelin

ArlenXu
41分钟前
0
0
Mac item2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 水平分屏:command + d 垂直分屏:c...

说回答
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部