当前位置: 首页 > news >正文

PHP基础知识

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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 新增)。

转载于:https://my.oschina.net/ramosyWeb/blog/493623

相关文章:

  • JLOI 2013 卡牌游戏
  • Andriod下载源码导入后AndroidManifest.xml小红叉的解决办法
  • IE浏览器下ajax缓存导致数据不更新的解决方法
  • coredata
  • 一个java实现的简单的4则运算器
  • Opengl中矩阵和perspective/ortho的相互转换
  • 学习日志---pyhon入门必备
  • 数组作函数参数传递和函数返回值
  • 关于重连测试的一点研究
  • 关于c++字符串的while(*temp++)
  • Java版本的删除指定目录及子目录下名叫“xxx.txt”的所有文件
  • PostgreSQL通过pg_upgrade进行大版本升级
  • MyBatis——动态SQL
  • 南阳483--Nightmare(Bfs)
  • 系统启动流程
  • conda常用的命令
  • create-react-app项目添加less配置
  • ECMAScript6(0):ES6简明参考手册
  • JAVA多线程机制解析-volatilesynchronized
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Magento 1.x 中文订单打印乱码
  • MD5加密原理解析及OC版原理实现
  • Mysql优化
  • ReactNative开发常用的三方模块
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 对象引论
  • 精彩代码 vue.js
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 驱动程序原理
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 2017年360最后一道编程题
  • 7行Python代码的人脸识别
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #每天一道面试题# 什么是MySQL的回表查询
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)二分查找 超详细
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (新)网络工程师考点串讲与真题详解
  • (一)插入排序
  • (一)为什么要选择C++
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET CORE Aws S3 使用
  • .net 调用php,php 调用.net com组件 --
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net快速开发框架源码分享
  • .net连接oracle数据库
  • @GetMapping和@RequestMapping的区别