刚开始学习PHP,以后大家多多指教:
学习后台是一个漫长的过程,刚学PHP,总结了一小部分,有人会问为什么把W3C的东西拷贝出来分享呢?
我的回答是:W3C都是一些入门基础,很有实在意义,而且很多人不愿去W3C去学习,东西太多。
都愿意去看博客或者查资料学习,所以我分享给一些跟我一样的初学者学习,希望对大家有帮助!
PHP学习语法:
echo "我的第一段 PHP 脚本!";
// 此处是 PHP 代码
?>
我的第一张 PHP 页面
echo "Hello World!";
?>
PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
PHP有三种注释:(//或者#或者/* */)
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
5. 在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。
实例:
ECHO "Hello World!
";
echo "Hello World!
";
EcHo "Hello World!
";
?>
运行结果:
6.不过在 PHP 中,所有变量都对大小写敏感。
实例:
$color="red";
echo "My car is " . $color . "
";
echo "My house is " . $COLOR . "
";
echo "My boat is " . $coLOR . "
";
?>
运行结果:
7. 变量是存储信息的容器:
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
描述:$x,$y,$z代表三个不同的变量。最后输出$z的值
8. PHP 变量规则:
变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
PHP 变量名称对大小写敏感!
9. $txt="Hello world!";--------如果您为变量赋的值是文本,请用引号包围该值。
PHP 根据它的值,自动把变量转换为正确的数据类型。
10变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
local(局部)
global(全局)
static(静态)
11.Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
实例:
$x=5; // 全局作用域
function myTest()-----------实现函数,用于下面的函数调用
{
$y=10; // 局部作用域
echo "测试函数内部的变量:
";echo "变量 x 是:$x";
echo "
";
echo "变量 y 是:$x";
} ----------大括号里面创建的变量属于局部变量
myTest();----------函数调用
echo "测试函数之外的变量:
";echo "变量 x 是:$x";
echo "
";-------换行符
echo "变量 y 是:$x";
?>
12. global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
实例:
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
global $x,$y;----等价于----- $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
13. 通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
实例:
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
该变量仍然是函数的局部变量。
14. echo 和 print 之间的差异:
echo - 能够输出一个以上的字符串
print - 只能输出一个字符串,并始终返回 1
15. echo 命令来显示字符串和变量
实例:
$txt1="Learn PHP";
$txt2="W3School.com.cn";
$cars=array("Volvo","BMW","SAAB");
echo $txt1;
echo "
";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
?>
16.PHP中字符串可以是引号内的任何文本。您可以使用单引号或双引号输出
实例:
$x = "Hello world!";
echo $x;
echo "
";
$x = 'Hello world!';
echo $x;
?>
17. 整数是没有小数的数字。
浮点数是有小数点或指数形式的数字。
逻辑是 true 或 false。
PHP var_dump() 会返回变量的数据类型和值:
实例:
$x = 5985;
var_dump($x);
echo "
";
$x = -345; // 负数
var_dump($x);
echo "
";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "
";
$x = 047; // 八进制数
var_dump($x);
?>
18. 数组在一个变量中存储多个值。
实例:
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>
19. 对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型:
实例:
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
20. 特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值
可以通过把值设置为 NULL,将变量清空:
PHP 字符串函数
1.strlen() 函数返回字符串的长度,以字符计。
实例:
echo strlen("Hello world!");
?>
2. strpos() 函数用于检索字符串内指定的字符或文本。如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
实例:
echo strpos("Hello world!","world");
?>
3.常量是单个值的标识符(名称)。在脚本中无法改变该值。
有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
4. 如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
实例:
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>
对大小写不敏感的常量,值为 "Welcome to W3School.com.cn!"
实例:
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
?>
实例:
$x=10;
$y=6;
echo ($x + $y); // 输出 16
echo ($x - $y); // 输出 4
echo ($x * $y); // 输出 60
echo ($x / $y); // 输出 1.6666666666667
echo ($x % $y); // 输出 4
?>
实例:
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>
而echo $y++;--------先运算再+1,echo $i--;---------先运算后-1.
=== 全等(完全相同) $x===$y 表示$x等于$y且类型相同才返回true
!== 则相反
实例:
$x=100;
$y="100";
var_dump($x == $y);
echo "
";
var_dump($x === $y);
echo "
";
var_dump($x != $y);
echo "
";
var_dump($x !== $y);
echo "
";
$a=50;
$b=90;
var_dump($a > $b);
echo "
";
var_dump($a < $b);
?>
10.
and |
与 |
$x and $y |
如果 $x 和 $y 都为 true,则返回 true。 |
or |
或 |
$x or $y |
如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor |
异或 |
$x xor $y |
如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
11.条件判断:
(1)if....else 语句在条件为 true 时执行代码,在条件为 false 时执行另一段代码。
if....elseif...else 语句来选择若干代码块之一来执行。(可以多层 else if,但必须有个else)
(2)使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。
对表达式(通常是变量)进行一次计算
把表达式的值与结构中 case 的值进行比较
如果存在匹配,则执行与 case 关联的代码
代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
如果没有 case 为真,则使用 default 语句
(3)只要指定的条件为真,while 循环就会执行代码块。
while - 只要指定条件为真,则循环代码块
do...while - 先执行一次代码块,然后只要指定条件为真则重复循环
for - 循环代码块指定次数
foreach - 遍历数组中的每个元素并循环代码块
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
实例:
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value
";
}
?>
重点章节
1.PHP 函数:
页面加载时函数不会立即执行。
函数只有在被调用时才会执行。
用户定义的函数声明以关单 "function" 开头:"function"后面接的是函数名,函数调用时只需把这个函数名后面加上()跟(参数)就行
实例:
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // 调用函数
?>
2.可以通过参数向函数传递信息。参数类似变量。
实例:
function familyName($fname,$year) {
echo "$fname Zhang. Born in $year
";
}
familyName("Li","1975");
familyName("Hong","1978");
familyName("Tao","1983");
?>
3.如需使函数返回值,请使用 return 语句
实例:
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "
";
echo "7 + 13 = " . sum(7,13) . "
";
echo "2 + 4 = " . sum(2,4);
?>
4.数组:数组在单个变量中存储多个值。
数组能够在单一变量名中存储许多值,并且您能够通过引用下标号来访问某个值。
实例:
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
5. 有三种数组类型:
索引数组 - 带有数字索引的数组
关联数组 - 带有指定键的数组
多维数组 - 包含一个或多个数组的数组
6. count() 函数用于返回数组的长度(元素数):
实例:
$cars=array("Volvo","BMW","SAAB");
echo count($cars);
?>
7. 如需遍历并输出索引数组的所有值,您可以使用 for 循环,就像这样:
实例:
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++) {
echo $cars[$x];
echo "
";
}
?>
创建一个关联:$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
实例:
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
实例:
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
foreach($age as $x=>$x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "
";
}
?>
11. 在本节中,我们将学习如下 PHP 数组排序函数:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
实例:
sort()
$cars=array("Volvo","BMW","SAAB");
sort($cars);
?>
rsort()----降序
$cars=array("Volvo","BMW","SAAB");
rsort($cars);
?>
asort()----按值来升序
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>
ksort()-----按键来升序
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
降序类似,只是函数不一样而已。
12. PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
13. $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
实例:
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
注:含有GLOBALS关键字的变量都是超全局变量
14.$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。
实例:
echo $_SERVER['PHP_SELF'];
echo "
";
echo $_SERVER['SERVER_NAME'];
echo "
";
echo $_SERVER['HTTP_HOST'];
echo "
";
echo $_SERVER['HTTP_REFERER'];
echo "
";
echo $_SERVER['HTTP_USER_AGENT'];
echo "
";
echo $_SERVER['SCRIPT_NAME'];
?>
此关键字的属性(参数)包含:
元素/代码 |
描述 |
$_SERVER['PHP_SELF'] |
返回当前执行脚本的文件名。 |
$_SERVER['GATEWAY_INTERFACE'] |
返回服务器使用的 CGI 规范的版本。 |
$_SERVER['SERVER_ADDR'] |
返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] |
返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 |
$_SERVER['SERVER_SOFTWARE'] |
返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] |
返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER['REQUEST_METHOD'] |
返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER['REQUEST_TIME'] |
返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER['QUERY_STRING'] |
返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER['HTTP_ACCEPT'] |
返回来自当前请求的请求头。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] |
返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] |
返回来自当前请求的 Host 头。 |
$_SERVER['HTTP_REFERER'] |
返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 |
$_SERVER['HTTPS'] |
是否通过安全 HTTP 协议查询脚本。 |
$_SERVER['REMOTE_ADDR'] |
返回浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] |
返回浏览当前页面的用户的主机名。 |
$_SERVER['REMOTE_PORT'] |
返回用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] |
返回当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] |
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 |
$_SERVER['SERVER_PORT'] |
Web 服务器使用的端口。默认值为 “80”。 |
$_SERVER['SERVER_SIGNATURE'] |
返回服务器版本和虚拟主机名。 |
$_SERVER['PATH_TRANSLATED'] |
当前脚本所在文件系统(非文档根目录)的基本路径。 |
$_SERVER['SCRIPT_NAME'] |
返回当前脚本的路径。 |
$_SERVER['SCRIPT_URI'] |
返回当前页面的 URI。 |
15. PHP $_REQUEST 用于收集 HTML 表单提交的数据。
使用超级全局变量 $_REQUEST 来收集 input 字段的值
实例:
Name:
$name = $_REQUEST['fname'];
echo $name;
?>
16. PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
实例:
Name:
$name = $_POST['fname'];
echo $name;
?>
17. PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
参数传值
实例:
通过URL传递,获取上个页面传过来的subject和web值
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>