您的位置:首页 > 编程语言 > PHP开发

PHP知识点——1

2016-02-21 22:25 507 查看
安装环境:WAMP,如果不想只用记事本编辑代码,用IDE也行,下载了easyeclipse for php。

基本:

PHP 脚本以 <?php 开始,以 ?> 结束:

<?php

echo "Hello World!";

?>

变量:

PHP 变量规则:
· 变量以 $
符号开始,后面跟着变量的名称
· 变量名必须以字母或者下划线字符开始
· 变量名只能包含字母数字字符以及下划线(A-z、0-9
和 _

· 变量名不能包含空格
· 变量名是区分大小写的($y
和 $Y
是两个不同的变量)
<?php

$txt="Hello world!"; //弱类型

$x=5;

$y=10.5;

?>

作用域:

1、在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global
关键字,否则内部访问不到全局。
2、在 PHP
函数内部声明的变量是局部变量,仅能在函数内部访问。
3、PHP
将所有全局变量存储在一个名为 $GLOBALS[index]
的数组中。 index 保存变量的名称,引号括起来。这个数组可以在函数内部访问,也可以直接用来更新全局变量。此时不用在内部用global声明了。

4、当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字。

5、参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分:
<?php

function myTest($x)

{

echo $x;

}

myTest(5);

?>

在 PHP 中有两个基本的输出方式: echo 和 print

echo 和 print
区别:
· echo -
可以输出一个或多个字符串
· print -
只允许输出一个字符串,返回值总为 1
· 如echo "This"," string", " was", " made", " with multipleparameters.";
提示:echo
输出的速度比print
快, echo
没有返回值,print有返回值1。

echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo
或 echo()。字符串可以包含字符串、字符串变量、HTML
标签。print
命令类似。

<?php

$txt1="Learn PHP";

$txt2="w3cschool.cc";

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

echo $txt1;

echo "<br>";

echo "Study PHP at $txt2";

echo "My car is a {$cars[0]}";

?>

数据类型:

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

测试:var_dump($x)
函数返回变量的数据类型和值。

数组:

<?php

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

var_dump($cars);

?>

对象:

<?php

class Car

{

var $color;

function Car($color="green") {

$this->color = $color;

}

function what_color() {

return $this->color;

}

}

?>

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

NULL 值指明一个变量是否为空值。同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL
来清空变量数据:

常量:

设置常量,使用 define()
函数,函数语法如下:
define(stringconstant_name, mixed value, case_sensitive = true)
该函数有三个参数:
· constant_name:必选参数,常量名称,即标志符。
· value:必选参数,常量的值。
· case_sensitive:可选参数,指定是否大小写敏感,设定为 true
表示不敏感。
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

字符串变量:

并置运算符:

<?php

$txt1="Hello world!";

$txt2="What a nice day!";

echo $txt1 . " " . $txt2;

?>

上面的代码将输出:Helloworld! What a nice day!

strlen() 函数返回字符串的长度(字符数)strlen() 常常用在循环和其他函数中,因为那时确定字符串何时结束是很重要的。

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
下面的实例在字符串 "Helloworld!"
中查找文本 "world":
<?php

echo strpos("Hello world!","world");

?>
输出6.注意从0算起。

运算符(略)

条件结构:

<?php

$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!";

}

?>

<?php

$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!";

}

?>

数组:

在 PHP
中,有三种类型的数组:
· 数值数组 -
带有数字 ID
键的数组
· 关联数组 -
带有指定的键的数组,每个键关联一个值
· 多维数组 -
包含一个或多个数组的数组
<?php

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

echo "I like " . $cars[0] . "," . $cars[1] . " and " . $cars[2] . ".";

$arrlength=count($cars);//获取数组长度

for($x=0;$x<$arrlength;$x++)//遍历

{

echo $cars[$x];

echo "<br>";

}

?>

这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";

$age['Ben']="37";

$age['Joe']="43";
例子:
<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

echo "Peter is " . $age['Peter'] ." years old.";

?>

遍历关联数组:

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

foreach($age as $x=>$x_value)

{

echo "Key=" . $x . ",Value=" . $x_value;

echo "<br>";

}

?>

数组排序函数:(排序的依据根据数组元素类型)

· sort() -
对数组进行升序排列
· rsort() -
对数组进行降序排列
· asort() -
根据关联数组的值,对数组进行升序排列
· ksort() -
根据关联数组的键,对数组进行升序排列
· arsort() -
根据关联数组的值,对数组进行降序排列
· krsort() -
根据关联数组的键,对数组进行降序排列

超级全局变量:

PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
· $GLOBALS
· $_SERVER
· $_REQUEST
· $_POST
· $_GET
· $_FILES
· $_ENV
· $_COOKIE
· $_SESSION
$GLOBAL 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

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

<?php

echo $_SERVER['PHP_SELF'];

echo "<br>";

echo $_SERVER['SERVER_NAME'];

echo "<br>";

echo $_SERVER['HTTP_HOST'];

echo "<br>";

echo $_SERVER['HTTP_REFERER'];

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

echo $_SERVER['SCRIPT_NAME'];

?>

PHP $_REQUEST 用于收集HTML表单提交的数据。键值为表单元素中的name。

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

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

具体区别见后面。

循环:

重点:foreach
循环用于遍历数组。

foreach ($array as $value)

{

要执行代码;

}
每进行一次循环,当前数组元素的值就会被赋值给 $value
变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。

<?php

$x=array("one","two","three");

foreach ($x as $value)

{

echo $value . "<br>";

}

?>

函数:

<?php

function add($x,$y)

{

$total=$x+$y;

return $total;

}

echo "1 + 16 = " . add(1,16);

?>

魔术变量:

PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径。

__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。等价于 dirname(__FILE__)

__FUNCTION__ 函数名称(PHP 4.3.0 新加)。

__CLASS__ 类的名称(PHP 4.3.0 新加)

__METHOD__ 类的方法名

__NAMESPACE__ 当前命名空间的名称(区分大小写)


命名空间是用来组织和重用代码的[1] 。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用
namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。

命名空间:

PHP 命名空间可以解决以下两类问题:
1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。你也可以在同一个文件中定义不同的命名空间代码:

< ?php

namespace MyProject1;
// MyProject1 命名空间中的PHP代码

namespace MyProject2;
// MyProject2 命名空间中的PHP代码

// 另一种语法
namespace MyProject3 {
//MyProject3 命名空间中的PHP代码
}
?>

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare
语句。所有非 PHP代码包括空白符都不能出现在命名空间的声明之前。

<?php
declare(encoding='UTF-8');
//定义多个命名空间和不包含在命名空间中的代码
namespace
MyProject {

const CONNECT_OK
= 1;
class
Connection {
/* ... */ }
function connect()
{ /* ... */
}
}

namespace
{ // 全局代码
session_start();
$a =
MyProject\connect();
echo MyProject\Connection::start();
}
?>

子命名空间:

namespace
MyProject\Sub\Level;
//声明分层次的单个命名空间

PHP 命名空间中的类名可以通过三种方式引用(略)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: