php变量_数据类型

开始使用php

<html>
    <head>
        <title>HelloWorld</title>
    </head>
    <body>
        <p>第一个PHP程序</p>
        <p>
<?php
    echo 'Hello World!';
?>
        </p>
        <p>时间:<?php echo date("Y-m-d H:i:s");?> </p>
    </body>
</html>

四种php标记:

1.<?php echo 'hello';?>//系统自带

2.<? echo 'hello'; ?>    //短标记.需要配置文件

3.<script language="php"> echo 'hello';</script>//系统自带

4.<% echo 'hello'; %>    //asp风格.需要配置文件

PHP注释

1.多行注释
/*
    This script is hello world
    Author: david
    Date: 2010.04.01
*/
2.单行注释
echo 'hello';         //print hello
echo 'hello';        # print hello
3.文档注释
/**
 * 获取用户数据
 * @param int uid
 * @author david
 */

变量

1.变量声明

变量以美元符 $ 开头,然后是变量名;

变量名由字母或下划线开头,由字母,下划线,数字组成;

变量名区分大小写;

php 是弱类型的语言,不需要事先声明变量的数据类型;

php可以不用显示的声明变量就直接使用,不过好的编码习惯:所有的变量在使用前应该进行
声明;

2.变量赋值

(1). 值赋值:就是将赋值表达式的值复制到变量;

(2). 引用赋值:php4引入了引用赋值功能,创建的变量与另一个变量引用的内容相同。
        例:

        $val_1 = 'hello';

        $val_2 = &$val_1;  //把$val_1的内存空间地址赋值给$val_2,是同一个变量

        $val_2 = 'goodbye';

        $var_1 = 'goodbye';

3.变量的变量

    $val_1 = 'hello';

    $$val_1 = 'world';
    
    echo $hello;

    echo $val_1;
    
    echo ${$val_1};

2.PHP的超全局变量

    php提供了很多有用的预定义变量,用于提供大量与环境有关的信息。

    (1). $_SERVER 服务器变量

        该全局变量包含着服务器和客户端配置及当前请求环境的有关信息

    $_SERVER['SERVER_NAME']; : 当前运行脚本所在的服务器的主机名

    $_SERVER['HTTP_REFERER']链接到当前页面的前一页面的 URL 地址

    $_SERVER['REMOTE_ADDR']正在浏览当前页面用户的 IP 地址

    $_SERVER['REQUEST_URI']访问此页面所需的 URI

    $_SERVER['HTTP_USER_AGENT']当前请求的 User-Agent: 头信息的内容。

  (2). $_GET

      该变量包含使用 GET 方法传递的参数的有关信息;

      例:
      url: http://localhost/test.php?id=100&page=2
      $id = $_GET['id'];
      $page = $_GET['page'];

   (3). $_POST

      该变量包含使用 POST 方法传递的参数的有关信息;

    例:html:
      <form name="reg" action="test.php" method="post">
          用户名:<input type="text" name="username" />
          密码: <input type="password” name="passwd"/>
          <input type="submit" value="提交" />
      </form>


      php:   
      $username = $_POST[‘username’];
      $passwd = $_POST[‘passwd’];


  //_GET与_POST的区别  //
1.GET 方法
  //GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见;
  //GET 方法提交的数据有大小限制
  //2.POST 方法
  //POST 方法提交数据安全,数据置于消息主体内,客户端不可见
  //POST 方法提交的数据大小没有限制

  (4). $_REQUEST

      该变量记录着通过各种输入方法传递给脚本的变量,如GET POST,但不要用这个超级全局变量,因为它不安全而且速度比较慢;

  (5). $_COOKIE            cookie变量数组

  (6). $_SESSION           会话变量数组

  (7). $_FILES             与上传文件有关的变量数组

  (8). $_ENV               环境变量数组

  (9). $GLOBALS           所有全局变量数组  

常量

1.常量的定义
    常量是指在程序执行中无法修改的值。如 PI (3.1415926);
    在脚本执行期间该值不能改变;
    常量对大小写敏感,通常常量名总是大写;
    常量是全局的,可以在脚本的任何地方引用;
    常量分为内置常量和自定义常量;
    常量使用define()函数定义;

2.内置常量
    PHP_OS           PHP所在的操作系统的名字
    PHP_VERSION      当前 PHP 的版本

3.魔术常量
    __LINE__    文件中的当前行号;
    __FILE__    文件的完整路径和文件名;
    __FUNCTION__    函数名称;
    __CLASS__    类的名称;
    __METHOD__    类的方法名;

数据类型

一、标量数据类型

1.字符串 (string)
    字符串有三种定义方式:单引号,双引号,定界符(heredoc);
    单引号字符串中出现的变量不会被变量的值替代;
    双引号字符串中最重要的一点是其中的变量会被变量值替代;

    如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想明确的指定名字的结束,用花括号把变量名括起来。

    例:

      $test = 'wengdo';
      $demo = "234";
      echo '$test';//$test 
单引号不解析变量

      echo "{$test}abc";//wengdo 双引号解析变量

  字符串定界的方法使用定界符语法 "<<<"

    例:
        $str = <<<EOD
        Example of string
        using heredoc syntax.
        EOD;
        echo $str;
    在PHP定界符中的任何特殊字符 都不需要转义
    PHP定界符中的PHP变量会被正常的用其值来替换
    使用定界符要注意:
    结束标识符所在的行不能包含任何其它字符,这意味着该标识符不能被缩进,在分号之前
    之后都不能有任何空格或制表符;

  转义字符

             换行
             回车 ( WINDOW ) (linux ) (Mac OS )
             水平制表符 (按键盘 tab 产生的效果)
    \        反斜线
    $        美元符(表示变量的开始)
    "        双引号

2.整型(integer)
    $age = 25;

3.浮点型(float, double)
    $num = 5.39;

4.布尔型(bool)
    $bo = TRUE;
    $bo = FALSE;

二、复合数据类型

1.数组
    $week = array('星期一','星期二','星期三');

2.对象
    $db = new db;

三、特殊数据类型

1.资源
    $fh = fopen("test.txt","r");
2.null
    null 无,表示没有值,null不表示空格,也不表示0;
    以下情况,则认为是null:
      没有设置为任何预定义的变量;
      明确的赋值为null;
      使用函数unset()清除;

类型自动转换

因为php对于类型定义非常的松散,所以有时会根据引用变量的环境,将变量自动转换为
最适合的类型;

例1: $num = 5;
     $str = “15”;
     echo $num + $str;   
例2: $str = “100 hello”;
     $num = 200;
     echo $num + $str;
例3:
        $str = '1.2';
        if($str){  //if 判断为 true
            echo 'hello world';
          }

与类型相关的函数

1.gettype() 返回变量的类型
 
    共有8个可能的值 string、integer、float、boolean、array、object、null、unknow

    例: $str = ‘hello’;
         echo gettype($str);

2.is_type() 查看变量是否属于某个类型,是返回 TRUE ,否返回 FALSE;

    $arr = array(1);
    echo is_array($arr);
   
    $num = 5;
    echo is_int($num);
3.var_dump()

    var_dump()函数用来得到变量的类型和值的详细信息

/*
echo 字符串   数值
print_r  数组  对象 字符串   数值
var_dump  数据类型

 */
例:
    $str = ‘hello’;
    var_dump($str);

    $arr = array(‘A’, ‘B’, ‘C’);
    var_dump($arr);

error_reporting(E_ALL);
// E_ALL错误提示信息全开
// 0 错误提示信息全关