PHP知识点总结2

PHP5数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

字符串 
你可以将任何文本放在单引号和双引号中:

<?php 
$x = "Hello world!";
echo $x;
echo "<br>"; 
$x = 'Hello world!'; //单引号 包括字符串字面量 双引号包含的字符串 可包含变量
echo $x;
?>

整型 
在以下实例中我们将测试不同的数字。 PHP var_dump()函数返回变量的数据类型和值:

?php 
$x = 5985;
var_dump($x);
echo "<br>"; 
$x = -345; // 负数 
var_dump($x);
echo "<br>"; 
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>

浮点型

<?php 
$x = 10.365;
var_dump($x);
echo "<br>"; 
$x = 2.4e3;
var_dump($x);
echo "<br>"; 
$x = 8E-5;
var_dump($x);
?>

布尔型

布尔型可以是 TRUE 或 FALSE。

数组

数组可以在一个变量中存储多个值

<?php 
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>

对象

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:

<?php
class Car
{
    var $color;
    function Car($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

// instantiate one object
$herbie = new Car("white");

// show herbie properties
echo "\herbie: Properties\n";
print_vars($herbie);

?>  

NULL 值 
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>

常量

常量是一个简单值的标识符。该值在脚本中不能改变。 (常量名不需要加 $ 修饰符)。

注意: 常量在整个脚本中都可以使用。

设置常量,使用 define() 函数,函数语法如下:

define(string constant_name, mixed value, case_sensitive = true)
该函数有三个参数:

  • constant_name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_sensitive:可选参数,指定是否大小写敏感,设定为 true 表示不敏感。

以下实例我们创建一个 区分大小写的常量, 常量值为 "Welcome to W3CSchool.cc!":

<?php
define("GREETING", "Welcome to W3CSchool.cc!");
echo GREETING;
?>

字符串函数和字符串连接

<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2; // 字符串连接运算符 .

echo strlen("Hello world!"); //获取字符串长度
echo strpos("Hello world!","world"); //获取子串位置
//字符串中第一个字符的位置是 0
?>

运算符

<?php
//其他运算符略..
//逻辑运算符 ! && || and or xor
//数组运算符 合并: + 比较:== != === !==
$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>

流程控制语句 同js

<?php

$t=date("H");
if ($t<"20")
{
	echo "Have a good day!";
}



$t=date("H");
if ($t<"20")
{
	echo "Have a good day!";
}
else
{
	echo "Have a good night!";
}

$t=date("H");
if ($t<"10")
{
	echo "Have a good morning!";
}
else if ($t<"20")
{
	echo "Have a good day!";
}
else
{
	echo "Have a good night!";
}

$favcolor="red";
switch ($favcolor)
{
	case "red":
	echo "Your favorite color is red!";
	break;
	case "blue":
	echo "Your favorite color is blue!";
	break;
	case "green":
	echo "Your favorite color is green!";
	break;
	default:
	echo "Your favorite color is neither red, blue, or green!";
}

//循环
$i=1;
while($i<=5)
{
	echo "The number is " . $i . "<br>";
	$i++;
}


$i=1;
do
{
	$i++;
	echo "The number is " . $i . "<br>";
}
while ($i<=5);

for ($i=1; $i<=5; $i++)
{
	echo "The number is " . $i . "<br>";
}


$x=array("one","two","three");
foreach ($x as $value)
{
	echo $value . "<br>";
}

?>

数组

<?php
$cars=array("Volvo","BMW","Toyota"); //数组定义 数值数组
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; //访问数组元素

//数组长度count()
$cars=array("Volvo","BMW","Toyota");
echo count($cars); //count() 函数用于返回数组的长度

//遍历数值数组
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++)
{
	echo $cars[$x];
	echo "<br>";
}

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//定义关联数组
echo "Peter is " . $age['Peter'] . " years old.";

//遍历关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
	echo "Key=" . $x . ", Value=" . $x_value;
	echo "<br>";
}
?>

数组排序

PHP - 数组排序函数

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列
//sort()
$cars=array("Volvo","BMW","Toyota");
sort($cars);

$clength=count($cars);
for($x=0;$x<$clength;$x++)
{
	echo $cars[$x];
	echo "<br>";
}

//rsort()   
$cars=array("Volvo","BMW","Toyota");
rsort($cars);   

//asort() arsort() 关联数组排序 value
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
arsort($age);

//ksort() krsort() 关联数组排序 key
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
krsort($age);
?>

超级全局变量

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_COOKIE
  • $_FILES
  • $_ENV
  • $_SESSION

$GLOBAL 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

<?php 
$x = 75; 
$y = 25;
 
function addition() 
{ 
	$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
 
addition(); 
echo $z; 
?>

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;

<?php 
echo $_SERVER['PHP_SELF']; // /try/demo_source/demo_global_server.php
echo "<br>";
echo $_SERVER['SERVER_NAME']; // w3cschool.cc 
echo "<br>";
echo $_SERVER['HTTP_HOST']; // www.w3cschool.cc
echo "<br>";
echo $_SERVER['HTTP_REFERER']; //来由
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT']; //浏览器
echo "<br>";
echo $_SERVER['SCRIPT_NAME']; // /try/demo_source/demo_global_server.php

//另外$_SERVER对象还包括 SERVER_ADDR, SERVER_PROTOCOL ,REQUEST_METHOD..等属性

?>

$_REQUEST 用于收集HTML表单提交的数据。

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>

</body>
</html>

$_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"

<html>
<body>
<!--页面post给自己-->
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php 
$name = $_POST['fname']; 
echo $name; 
?>

</body>
</html>

$_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

$_GET 也可以收集URL中发送的数据。

<html>
<body>

<a href="test_get.php?subject=PHP&web=w3cschool.cc">Test $GET</a>

</body>
</html>

//test_get.php

<html>
<body>

<?php 
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
posted @ 2017-08-20 21:30  兔子不吃青菜  阅读(205)  评论(0编辑  收藏  举报