PHP知识点——1

安装环境:WAMP,如果不想只用记事本编辑代码,用IDE也行,下载了easyeclipse for php。

 

基本:

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

<?php
echo "Hello World!";
?>

 

变量:

PHP 变量规则:

·        变量以 $ 符号开始,后面跟着变量的名称

·        变量名必须以字母或者下划线字符开始

·        变量名只能包含字母数字字符以及下划线(A-z0-9 _

·        变量名不能包含空格

·        变量名是区分大小写的($y $Y 是两个不同的变量)

<?php
$txt="Hello world!"; //弱类型
$x=5;
$y=10.5;
?>

 

作用域:

1、在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字,否则内部访问不到全局。

2、在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

3PHP 将所有全局变量存储在一个名为 $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 命名空间中的类名可以通过三种方式引用(略)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值