文档章节

PHP基础知识

ramosy
 ramosy
发布于 2015/08/17 18:34
字数 1565
阅读 104
收藏 10

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

本源
2014/03/28
128
5
PHP入门培训哪家机构教的好?就业靠谱么?

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

PHP那些事
2017/12/19
0
0
网管的未来出路与学习成长方向选择

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

hiyajun
2017/06/19
0
0
Tinywan/lua-nginx-redis

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

Tinywan
01/07
0
0
慕课分享:盘点2014年热门免费开发课程

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

2014/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

首个智能运维项目开源!腾讯织云Metis,用算法替代人为指定规则

10月20日,腾讯织云Metis 智能运维学件平台在OSCAR开源先锋日上宣布,正式对外开源。Metis 是AIOps(Algorithmic IT Operations),即智能运维领域的首个开源产品。智能运维主张通过算法从海...

腾讯开源
14分钟前
1
0
Java面试170题

1、面向对象的特征有哪些方面? 2、访问修饰符public,private,protected,以及不写(默认)时的区别? 3、String 是最基本的数据类型吗? 4、float f=3.4;是否正确? 5、short s1 = 1; s1 = ...

lanyu96
14分钟前
0
0
利用Ant脚本生成war包

使用ant脚本前的准备 1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。 2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。 3、检...

狼王黄师傅
17分钟前
1
0
优雅的写出类

前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的。 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类。 一、例子 例子为一个轻提示组件T...

peakedness丶
19分钟前
1
0
Python基础案例教程

一、超市买薯片 # 用户输入薯片的单价danjia = float(input("薯片的单价"))# 用户输入购买袋数daishu = int(input("购买的袋数"))# 计算总价zongjia = danjia * daishu# 输出结果...

linuxprobe16
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部