PHP中数据类型详解

 更新时间:2016年11月25日 15:08  点击:1816

PHP中数据类型详解

四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
为了确保代码的易读性,本手册还介绍了一些伪类型:
mixed
number
callback
以及伪变量 $....
可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。
Note: 如果想查看某个表达式的值和类型,用 var_dump()。
如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例:
 <?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";
}
?>

如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。
注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见类型戏法。此外,你还可以参考 PHP 类型比较表看不同类型相互比较的例子。
 
 
 
#
 
二、PHP的数据类型

Int zjj=100;                  //这种赋值是对的

Int zjj="hello,world";            //这种编译器就会提示错误

在PHP中,对变量的数据类型不需要声明,可以直接赋值。如下面的

$zjj=100;               //表示zjj为整型

$zjj="hello,world"            // 表示zjj为字符串型

PHP中的数据类型分成两种:一是标量数据类型,另一种就是复合数据类型。

标量数据类型有:

布尔型(boolean)         整型(integer)          浮点型(foat也叫做double)    

复合数据有:

数组(array)        对象(object)

还有两种特殊的数据

资源(resource)           空值(NULL)

1、布尔型是最简单的变量,布尔变量:true和false值

要设定一个布尔变量,只需将这两个值赋给变量就行了。PHP中就算是关键字也可以做变量名。

<?php
 $True="我是变量" . True;                   //这里有点的,书上有时印刷并没有。
 echo($True);
 echo("<BR>");                        //起到回车的作用
 echo("我是关键字" . True)
?>

执行结果:我是变量1                            //这里true就是1

                  我是关键字1

true和false实际上是代表数值1和0,因此true在输出时显示为1,但是在给变量赋值的时候,如果赋值为1,则被当成整型,如果被赋值为true,则被当成布尔型

当转换为布尔型时,以下值被认为是false

 (1)布尔值false

(2)整型值0(零)

(3)浮点型值0.0(零)

(4)空白字符串和字符串"0"

(5)没有成员变量的数组

(6)没有单元的对象(仅适用php4)

(7)特殊类型NULL

而所有其他值都被认为是TRUE包括任何资源。

2、整型

+2147483647到-2147483647

 

<?php
 $int_D=2147483647;  //十进制赋值
 echo($int_D);
 echo("<br>");
 $int_H=0x7FFFFFFF;  //十六进制赋值
 echo($int_H);
 echo("<br>");
 $int_O=017777777777;  //八进制赋值
 echo($int_O);
 echo("<BR>");
?>

执行结果:

2147483647
2147483647
2147483647

如果指定一个数超出了inter的范围,将会被解释为float

3、浮点型

1.7E-308到1.7E+308

<?php
 $float_1=90000000000; 
 echo($float_1);
 echo("<br>");
 $float_2=9E10; 
 echo($float_2);
 echo("<br>");
 $float_3=9E+10;
 echo($float_3);
?>

执行结果:

90000000000
90000000000
90000000000

4、字符串

PHP中有三种方式定义字符串

1、单引号方式。

$single_str='我是人';

如果想在浏览中输出单引号,必须在字符串中加入转义符号“”

<?
 $single_str='我被单引号括起来了!<br>';      //正常输出
 echo $single_str;
 $single_str='输出单引号: '嘿嘿,我在单引号里面'<br>';      //加了转义符可以输出单引号
 echo $single_str;
 $single_str='输出双引号:"我在双引号里面"<br>';         //正常输出
 print $single_str;
 $single_str='输双美元符号:$';                 //正常输出
 print $single_str;
?>

执行结果:

我被单引号括起来了!
输出单引号: '嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输双美元符号:$

(2)、双引号方式

$Double_Str="我是人"

为了在字符串中输出各种特殊字符,可以使用转义符

$Double_Str="输出美元符号:$";

$Double_Str="输出反斜杠:";

<?
 $Double_str="我被双引号括起来了!<br>";
 echo $single_str;
 $single_str="输出单引号:'嘿嘿,我在单引号里面'<br>"; //不需要转义符
 echo $single_str;
 $single_str="输出双引号:"我在双引号里面"<br>";  //需要转义符
 print $single_str;
 $single_str="输出美元符号:$ <br>";  //需要转义符
 print $single_str;
 $single_str="输出反斜杠 : <br>";  //需要转义符
 print $single_str;
 
?>

执行结果:

输出单引号:'嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输出美元符号:$
输出反斜杠 :

(3)、Heredoc 方式给字符串赋值

<?
$zjj1_str =<<<zjj          //=<<<这个相当于链接符,获取zjj到zjj中间的数据
 你好<br>
 美元符号  $ <br>         //zjj1和zjj都是可以随便起名字的。
 反斜杠   <br>             
 "我爱你"<br>
 '我恨你'
zjj;
 echo $zjj1_str;
?>

执行结果:

你好
美元符号 $
反斜杠
"我爱你"
'我恨你'

(4)、串中的变量

<?php
 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : $str_1<br>";  //双引号字符串中包含变量$str_1
 echo $str_2;

 $str_1 = '我是变量的值';
 $str_2 = 'str_1 : $str_1<br>';  //单引号中包含字符串的值
 echo $str_2;

 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : $str_12 <br>";  //引用的变量名后,多了个字符2即$str_12
 echo $str_2;

 $str_1 = "我是变量的值!"; 
 $str_2 = "str_1 : ${str_1}2 <br>";  //引用的变量名后,多了个字符2即$str_12
 echo $str_2;
?>

执行结果:

str_1 : 我是变量的值!
str_1 : $str_1
str_1 :
str_1 : 我是变量的值!2

从输出可以看出,双引号字符串是赋值的含义,直接输出变量的值。而单引号的字符串,包含的是变量的名称,可以理解为直接运行语句的结果,直接输出变量的名称而不是变量的值。

$str_2 = "str_1 : $str_12 <br>";    这句如果变量后面跟着非空格的字符,会让编译器糊涂,会把$str_12当成变量,而上面又没有定义,因此会输出空值。为了解决这个问题可以用${str_1}2 或{$str_1}2 这个来表达。
使用 PHP 函数对变量 $x 进行比较
表达式 gettype() empty() is_null() isset() boolean : if($x)
$x = ""; string TRUE FALSE TRUE FALSE
$x = null; NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE
 
松散比较 ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
 
严格比较 ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE

这两天学了写表单。总结于此,以备忘。
例子一(POST提交表单):
 
view sourceprint?
<html>
    <head>
        <title>
        Chunkify Form
        </title>
    </head>
    <body>
    <form action="chunkify.php教程" method="POST">
    Enter a word:
    <input type="text" name="word"/><br/>
    How long should be the chunks be?
    <input type="text" name="number"/><br />
    <input type="submit" value="Chunkify">
    </form>
    </body>
</html>
 
view sourceprint?
<html>
    <head>
        <title>
        Chunkify Word
        </title>
    </head>
    <?php
        $word=$_POST['word'];
        $number=$_POST['number'];
        $chunks=ceil(strlen($word)/$number);
        echo "The $number-letter chunks of '$word' are:<br/>n";
        for ($i = 0;$i<$chunks;$i++){
            $chunk=substr($word,$i*$number,$number);
            printf("%d: %s<br />n",$i+1,$chunk);
        }
    ?>
    </body>
</html>
 
html显示出来的页面。
提交表单后php处理出来的页面。在这个例子中,我输入一个单词,然后给定一个长度,将单词等分成该长度的块。
演示了通过POST方法提交表单。
 


例子二(单选,GET接受表单):

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
<select name="att[]" >
<option value="perky">perky</option>
<option value="morese">morose</option>
<option value="thinking">thinking</option>
<option value="feeling"> feeling</option>
<option value="thrifty">speed-thrift</option>
<option value="prodigal">shopper</option>
</select>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 


例子三(多选,GET接受表单):
注意到此时<select name="att[]" multiple> 下划线告诉GET你传输的是个数组,黑体字部分则是表示改选择框为多选框

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
<select name="att[]" multiple>
<option value="perky">perky</option>
<option value="morese">morose</option>
<option value="thinking">thinking</option>
<option value="feeling"> feeling</option>
<option value="thrifty">speed-thrift</option>
<option value="prodigal">shopper</option>
</select>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 

 


例子四(复选框checkbox): 同样name="att[]"是告诉GET你传输的是一个数组, checked 则表示该选项为初始默认选择,同样上例,在标签内加入 selected="selected"也可以
让多选初始默认选择。

view sourceprint?
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="GET">
Select your personality attributes:<br/>
perky<input type="checkbox" name="att[]" value="perky" checked /> <br/>
morose<input type="checkbox" name="att[]" value="morose" checked /> <br/>
thinking<input type="checkbox" name="att[]" value="thinking" /> <br/>
feeling<input type="checkbox" name="att[]" value="feeling" /> <br/>
<br>
<input type ="submit" name="s" value="Record my personality">
</form>
  
<?php
    if (array_key_exists('s',$_GET)){
        echo "<pre>";
        print_r($_GET);
        echo "</pre>";
        if (is_null($_GET['att'])) exit;
          
        $des = implode(' ', $_GET['att']);
        echo "You have a $des personality.";
    }
?>
 
 

 


例子五(单选框): 注意,同一个选项即可的单选必须name相等

view sourceprint?
<form>
男性:
<input type="radio" checked="checked" name="Sex" value="male" />
<br />
女性:
<input type="radio" name="Sex" value="female" />
<br>
<hr>
男性:
<input type="radio" checked="checked" name="Se" value="male" />
<br />
女性:
<input type="radio" name="Se" value="female" />
</form>
  
<p>当用户点击一个单选按钮时,该按钮会变为选中状态,其他所有按钮会变为非选中状态。</p>
 
 
 

 


例子六(stick form):一个表格如何要实现之前输入过的值在页面刷新后仍然存在可以如下

view sourceprint?
<?php
  $f = $_POST['fa'];
  
?>
  
<form action = "<?php echo $_SERVER['PHP_SELF']; ?> " method="POST">
temperature:
<input type="text" name="fa" value="<?php echo $f;?>" />;
<br/>
<input type="submit" name="Convert to Celsius" />
</form>
<?php 
    if (!is_null($f)){
        $c = ($f-32)*5/9;
        printf("%.2lf is %.2lfC",$f,$c);
    }
?>
 
  
 
都是一些简单的表单处理~

php教程遍历输出数组的方法

<html>
<head>
<title>Foreach Demo</title>
</head>
<body>
<?

$list = array("A", "B", "C", "D", "E");

print "<ul>n";
foreach ($list as $value){
  print " <li>$value</li>n";
} // end foreach
print "</ul>n";

?>
</body>
</html>

实例二

<?
$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';

foreach ($letters as $letter) {
    print $letter;
}
?>
 

什么是数组?
在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量。

无需很多相似的变量,你可以把数据作为元素存储在数组中。

数组中的元素都有自己的 ID,因此可以方便地访问它们。

有三种数组类型:
数值数组
带有数字 ID 键的数组
关联数组
数组中的每个 ID 键关联一个值
多维数组
包含一个或多个数组的数组 数值数组
数值数组存储的每个元素都带有一个数字 ID 键。

可以使用不同的方法来创建数值数组:

例子 1
在这个例子中,会自动分配 ID 键:

$names = array("Peter","Quagmire","Joe");例子 2
在这个例子中,我们人工分配的 ID 键:

$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";

可以在脚本中使用这些 ID 键:

<?php教程

$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";

echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
?>
以上代码的输出:

Quagmire and Joe are Peter's neighbors

关联数组
关联数组,它的每个 ID 键都关联一个值。

在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。

通过关联数组,我们可以把值作为键,并向它们赋值。

例子 1
在本例中,我们使用一个数组把年龄分配给不同的人:

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);例子 2
本例与例子 1 相同,不过展示了另一种创建数组的方法:

$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";
可以在脚本中使用 ID 键:

<?php

$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";

echo "Peter is " . $ages['Peter'] . " years old.";
?>

以上脚本的输出:

Peter is 32 years old.多维数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。

例子 1
在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:

$families = array
(
  "Griffin"=>array
  (
  "Peter",
  "Lois",
  "Megan"
  ),
  "Quagmire"=>array
  (
  "Glenn"
  ),
  "Brown"=>array
  (
  "Cleveland",
  "Loretta",
  "Junior"
  )
);

如果输出这个数组的话,应该类似这样:

Array
(
[Griffin] => Array
  (
  [0] => Peter
  [1] => Lois
  [2] => Megan
  )
[Quagmire] => Array
  (
  [0] => Glenn
  )
[Brown] => Array
  (
  [0] => Cleveland
  [1] => Loretta
  [2] => Junior
  )
)

例子 2
让我们试着显示上面的数组中的一个单一的值:

echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?";
以上代码的输出:

Is Megan a part of the Griffin family?

一、数组定义:
  数组的定义使用 array()方式定义,可以定义空数组:
 代码如下:

<?php
$number = array(1,3,5,7,9);
//定义空数组
$result = array();
$color =array("red","blue","green");
//自定义键值
$language = (1=>"English",3=>"Chinese",5=>"Franch");
//定义二维数组
$two = array(
"color"=>array("red","blue"), //用逗号结尾
"week"=>array("Monday","Friday") //最后一句没有标点
);
?>

二、创建数组:
  创建数组包含的函数有compact()、
    1.compact()函数——将一个或多个变量(包含数组)转换为数组:
      array compact ( mixed $varname [, mixed $... ] )  
 代码如下:

<?PHP
$number = "1,3,5,7,9";
$string = "I'm PHPer";
$array = array("And","You?");
$newArray = compact("number","string","array");
print_r ($newArray);
?>

compact()函数用于将两个或多个变量转换为数组,当然也包含数组变量。其参数是变量的名称而非带有$全名。
      相反的函数是extract()作用顾名思义就是将数组转换为单个的字符串,键值作为其字符串名称,数组值作为字符串的值。
      运行结果:
 代码如下:

Array ( [number] => 1,3,5,7,9 [string] => I'm PHPer [array] => Array ( [0] => And [1] => You? ) )

2.array_combine()——将两个数组重组成一个数组,一个作键值一个做的值:
      array array_combine ( array $keys , array $values )
 代码如下:

<?PHP
$number = array("1","3","5","7","9");
$array = array("I","Am","A","PHP","er");
$newArray = array_combine($number,$array);
print_r ($newArray);
?>

array_combine函数不多说了,谁看了都明白
      运行结果:

Array ( [1] => I [3] => Am [5] => A [7] => PHP [9] => er )
    3.range()函数——创建指定范围的数组:
       不多说了,直接上实例——
 代码如下:

<?PHP
$array1 = range(0,100,10);//0为起始值,100为结束值,10为步进值(默认步进值为1).
print_r($array1);
echo"<br />";
$array2 = range("A","Z");
print_r($array2);
echo "<br />";
$array3 = range("z","a");
print_r($array3);
?>

range()函数的默认步进值是1!
      运行结果:
 代码如下:

Array ( [0] => 0 [1] => 10 [2] => 20 [3] => 30 [4] => 40 [5] => 50 [6] => 60 [7] => 70 [8] => 80 [9] => 90 [10] => 100 )
Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J [10] => K [11] => L [12] => M [13] => N [14] => O [15] => P [16] => Q [17] => R [18] => S [19] => T [20] => U [21] => V [22] => W [23] => X [24] => Y [25] => Z )
Array ( [0] => z [1] => y [2] => x [3] => w [4] => v [5] => u [6] => t [7] => s [8] => r [9] => q [10] => p [11] => o [12] => n [13] => m [14] => l [15] => k [16] => j [17] => i [18] => h [19] => g [20] => f [21] => e [22] => d [23] => c [24] => b [25] => a )

4.array_fill()函数——填充数组函数:
 代码如下:

<?PHP
$array = range(1,10);
$fillarray = range("a","d");
$arrayFilled = array_fill(0,5,$fillarray);//这里的$fillarray可以是字符串,如"test".
echo "<pre>";
print_r ($arrayFilled);
echo "</pre>";
$keys = array("string","2",9,"SDK","PK");
$array2 = array_fill_keys($keys,"testing");
echo "<pre>";
print_r ($array2);
echo "</pre>";
?>

运行结果:
 代码如下:

Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[1] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[2] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[3] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[4] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
)
Array
(
[string] => testing
[2] => testing
[9] => testing
[SDK] => testing
[PK] => testing
)

二、数组的遍历:
 

   1.foreach遍历:
       foreach (array_expression as $value){}
       foreach (array_expression as $key => $value){}
      闲话少说,上实例:
 代码如下:
<?PHP
$speed = array(50,120,180,240,380);
foreach($speed as $keys=>$values){
echo $keys."=>".$values."<br />";
}
?>

运行结果:
 代码如下:
0=>50
1=>120
2=>180
3=>240
4=>380

2.while循环遍历:
      while循环遍历一般结合list函数,以下是实例
 代码如下:
<?PHP
$staff = array(
array("姓名","性别","年龄"),
array("小张","男",24),
array("小王","女",25),
array("小李","男",23)
);
echo "<table border=2>";
while(list($keys,$value) = each($staff)){
list($name,$sex,$age) = $value;
echo "<tr><td>$name</td><td>$sex</td><td>$age</td></tr>";
}
echo "</table>";
?>

运行结果:
姓名 性别 年龄
小张 男 24
小王 女 25
小李 男 23
3.for循环遍历:
 代码如下:
<?PHP
$speed = range(0,220,20);
for($i =0;$i<count($speed);$i++) {
echo $speed[$i]." ";
}
?>

运行结果:
 代码如下:
0 20 40 60 80 100 120 140 160 180 200 220

这是一篇基础的php教程入门教程,我们要告诉你如何利用php的相关函数来获取表单数据,在php提供了post,get,request三种方法来获取数据,我们最常用的就是$_POST,$_GET方法了,看
$_REQUEST 变量
PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。

PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。


实例

 

<html>
<head>
<title>An HTML Form that Calls Itself</title>
</head>
<body>
<div>
<?php
if ( ! empty( $_POST['guess'] ) ) {
    print "last guess: ".$_POST['guess'];
}
?>
<form method="post" action="<?php print $_SERVER['PHP_SELF']?>">
<p>
Type your guess here: <input type="text" name="guess" />
</p>
</form>
</div>
</body>
</html>

由于表的提供大量数据时我们尽量用post来获取,更复杂的实例二
 
实例二

<?php

$self = $_SERVER['PHP_SELF'];
$username = $_POST['username'];
$useraddr = $_POST['useraddr'];
$comments = $_POST['comments'];
$sent = $_POST['sent'];

$form ="<form action="$self" method="post">";
$form.="Name:<input type="text" name="username"";
$form.=" size="30" value="$username" >";
$form.="Email:<input type="text" name="useraddr"";
$form.=" size="30" value="$useraddr">";
$form.="Comments:<textarea name="comments" >";
$form.="$comments</textarea><br/>";
$form.="<input type="submit" name="sent" value="Send Form">";
$form.="</form>";

if($sent)
{
  $valid=true;

  if( !$username )
  { $errmsg.="Enter your name...<br />"; $valid = false; }

  if( !$useraddr )
  { $errmsg .="Enter your email address...<br />"; $valid = false; }

  if( !$comments )
  { $errmsg.="Enter your comments...<br />"; $valid = false; }

  $useraddr = trim($useraddr);
  $_name = "/^[-!#$%&'*+./0-9=?A-Z^_'{|}~]+";
  $_host = "([-0-9A-Z]+.)+";
  $_tlds = "([0-9A-Z]){2,4}$/i";
  if( !preg_match( $_name."@".$_host .$_tlds,$useraddr ) )
  {
    $errmsg.="Email address has incorrect format!<br />";
    $valid=false;
  }
}

if($valid != true)
{
  echo( $errmsg.$form );
}
else
{
  $to = "php@h.com";

  $re = "Feedback from $username";

  $msg = $comments;

  $headers  = "MIME-Version: 1.0rn";
  $headers .= "Content-type: text/html;";  
  $headers .= "charset="iso-8859-1"rn";

  $headers .= "From: $useraddr rn";

  if(mail($to,$re,$msg, $headers))
  { echo("Your comments have been sent - thanks $username");}

}
?>

上面可对用户提交的数据进行一些相关处理了。上只讲了$_POST

$_POST 变量
$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。

$_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

[!--infotagslink--]

相关文章

  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • 解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • php中浮点型(float)和整型(integer)数据类型详解

    文章分析了关于php中浮点型(float)和整型(integer)数据类型的用法区别以及在那种情况下会出现数据长度不够。 取值只能为True或者False,当其他类型转化为boolean类...2016-11-25
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • c# 数据类型占用的字节数介绍

    本篇文章主要是对c#中数据类型占用的字节数进行了详细的介绍。需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25
  • Javascript类型转换的规则实例解析

    这篇文章主要介绍了Javascript类型转换的规则实例解析,涉及到javascript类型转换相关知识,对本文感兴趣的朋友一起学习吧...2016-02-27
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • postgresql数据添加两个字段联合唯一的操作

    这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • 深入理解PHP变量的值类型和引用类型

    在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
  • Vue生命周期activated之返回上一页不重新请求数据操作

    这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number、String、Boolean、Object、Udefined、Null。其中,Object属于复杂数据类型,Object 由无序的键值对组成。其余几种都属于简单数据类型。注意:变量...2015-10-21
  • vue 数据(data)赋值问题的解决方案

    这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • C#泛型类型知识讲解

    这篇文章主要介绍了C#泛型类型知识,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-06-25
  • JQuery.Ajax()的data参数类型实例详解

    假如现在有这样一个表单,是添加元素用的。<form id='addForm' action='UserAdd.action' type='post'> <label for='uname'>用户名</label>:<input type='text' name='uname' id='uname'><br>...2015-11-24
  • Python3 常用数据标准化方法详解

    这篇文章主要介绍了Python3 常用数据标准化方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24