1. 基础
<?php
echo "<h1>1 </h1>>";
echo "我的第一段 PHP 脚本!<br>";
// 单行注释
# 也是单行注释
/*
* 多行注释块
* 它跨行了
* 多行
*/
echo "<h1>2 </h1>>";
echo "对用户定义的函数,类,关键字 大小写都不敏感";
echo "Hello world! <br>";
echo "Hello world! <br>";
echo "Hello world! <br>";
echo "<h1>3 </h1>>";
echo "赋值 字典 视作不同的变量";
$color = "red1";
$COLOR = "red2";
$coLOR = "red3";
echo "my car is " . $color . "<br>";
echo "my house is " . $COLOR . "<br>";
echo "my boat is " . $coLOR . "<br>";
echo "<h1>4 </h1>>";
echo "变量 存储信息的容器 <br>";
$x = 5;
$y = 6;
$z = $x + $y;
echo $z . "<br>";
echo "<h1>5 </h1>>";
echo "变量以$ 符号开头,其后是变量的名称 <br>";
echo "变量名称必须以字母或下划线开头 <br>";
echo "变量名称不能以数字开头 <br>";
echo "变量名称只能保护字母数字 字符和下划线 <br>";
echo "变量名称对大小写敏感 <br>";
$text = "hello world! <br>";
$x = 5;
$y = 10.5;
echo $x . "<br>";
echo $y . "<br>";
echo "<h1>6 </h1>";
echo "local (局部变量)";
echo "global (全局变量)";
echo "static (静态变量)";
echo "<h1>7 </h1>";
echo "local 和 global作用域 <br>";
echo "函数之外的声明变量 拥有global作用域 只能在函数以外进行访问 <br>";
echo "函数内部声明 拥有local 作用域 只能在函数内部访问 <br>";
$x = 5;
function myTest1($x)
{
$y = 10;
echo "<p> 测试函数内部的变量</p>";
echo "变量 x 是: $x";
echo "<br>";
echo "变量 y 是: $y";
}
myTest1($x);
echo "<p> 测试函数之外的变量; </p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量y 是:$y";
echo "<h1>8 </h1>";
echo "global (关键字 用于全局访问) 需要在函数外部预先做声明 才能够使用 <br>";
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y . "<br>";
echo "<h1>9 </h1>";
function myTest2()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest2();
echo $y . "<br>";
echo "<h1>10 </h1>";
function myText3()
{
static $x = 0;
$x++;
echo "static : $x <br>";
}
myText3();
myText3();
myText3();
myText3();
echo $x;
echo "<h1>10 </h1>";
echo "php5 echo 和 print 语句 <br>";
echo "两个用法的区别 <br>";
echo "echo 可以带括号 或者不带 都一样 可以带html标记 <br>";
$text1 = "Learn PHP";
$text2 = "w3school.com.cn";
$text3 = array("volvo", "BMW", "SAAB");
echo $text1 . "<br>";
echo "<br>";
echo "Study php at $text2 <br>";
echo "my car is a {$text3[0]} <br>";
echo "print 使用 <br>";
print $text1 . "<br>";
print "<br>";
print "Study php at $text2 <br>";
print "my car is a {$text3[1]} <br>";
echo "<h1>11 </h1>";
echo "字符串,整数,浮点数,逻辑数组,对象, null <br>";
echo "php 字符串 <br>";
$x = "Hello world!";
echo $x;
echo "<br>";
$x = "hello world!";
echo $x;
echo "整数";
echo "1. 整数必须有至少一个数字(0-9) <br>";
echo "2. 整数不能包含逗号或者空格 <br>";
echo "3. 整数不能有小数点 <br>";
echo "4. 整数正负均可 <br>";
echo "5. 可以用三种格式规定整数 (10进制),(16进制),(8进制) 通过关键字 var_dump进行处理 <br>";
$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);
echo "<br>";
echo "浮点数<br>";
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
echo "<br>";
echo "php 逻辑 true false <br>";
echo "字符串, 正数浮点,负数浮点,整数,逻辑,空";
$cars = array("Volvo", 1.11, -1.5, 1, true, null);
var_dump($cars);
echo "<h1>12 </h1>";
echo "字符串函数 空格也包括在字符串内Hello world! ";
echo strlen("Hello world!") . "<br>";
echo "单词数量";
echo str_word_count("Hello world!") . "<br>";
echo "反转字符串";
echo strrev("Hello world!") . "<br>";
echo "检索字符串内指定的字符或文本";
echo strpos("hello world!", "world") . "<br>";
echo "替换字符串中的文本";
echo str_replace("world!", "Kitty", "hello world!") . "<br>";
echo "<h1>13 </h1>";
echo "定义常量 <br>";
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
echo "大小写不敏感 7.2已弃用<br>";
echo "定义常量的全局<br>";
function myTest3()
{
echo GREETING;
}
myTest3();
echo "<h1>14 </h1>";
$x = 17;
$y = 8;
echo ($x + $y) . " 加 <br>";
echo ($x - $y) . " 减 <br>";
echo ($x * $y) . " 乘 <br>";
echo ($x / $y) . " 除 <br>";
echo ($x % $y) . " 取余 <br>";
echo "赋值运算 <br>";
echo $x = 17;
echo $x . "<br>";
$y = 17;
echo $y += 8;
echo $y . "+ 赋值 <br>";
$y = 17;
echo $y -= 8;
echo $y . "- 赋值 <br>";
$y = 17;
echo $y *= 8;
echo $y . "* 赋值 <br>";
$y = 17;
echo $y /= 8;
echo $y . "/ 赋值 <br>";
$y = 17;
echo $y %= 8;
echo $y . "% 赋值 <br>";
echo "字符串运算";
$txt1 = "hello";
echo $txt1 . " txt1 输出字符串<br>";
$txt2 = $txt1 . "world!";
echo $txt2 . " txt2 输出拼接字符串<br>";
$txt1 .= "world";
echo $txt1 . " txt1 .= 方式拼接<br>";
echo "递增、递减运算符";
$x = 17;
echo ++$x . " ++在前面 ";
$x = 17;
echo $x++ . " ++在后面 ";
$x = 17;
echo --$x . " ++在前面 ";
$x = 17;
echo $x++ . " ++在后面 ";
echo "比较运算符";
$x = 17;
$y = "17";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a = 17;
$b = 8;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
echo "<br>";
echo "逻辑运算符 and or xor && || |";
echo "<br>";
echo "数组运算符 联合 + 相等== 全等=== !=不相等 <>不相等 !== 不全等";
echo "<br>";
$x = array("a" => "apple", "b" => "banana");
$y = array("c" => "orange", "d" => "peach");
$z = $x + $y;
var_dump($z);
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x <> $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
echo "<h1>15</h1>";
echo "if";
echo "<br>";
$t = date("H");
if ($t<"20"){
echo "Have a good day!";
}
echo "<br>";
echo "if..else";
if ($t<"20"){
echo "Have a good day!";
}else{
echo "Have a good nigth!";
}
echo "<br>";
echo "if..elseif..else";
$t = date('H');
echo "<br>";
if ($t<"10"){
echo "Have a good morning! <10";
}elseif($t<"20"){
echo "Have a good day! <20";
}
else{
echo "Have a good night! >=21";
}
echo "<br>";
echo "switch";
echo "<br>";
$favfruit = "orange";
switch ($favfruit){
case "apple":
echo "Your favorite fruit is apple!";
echo "<br>";
break;
case "banana":
echo "Your favorite fruit is banana";
echo "<br>";
break;
case "orange":
echo "Your favorite fruit is orange!";
echo "<br>";
break;
default:
echo "Your favorite fruit is neither apple, banana, or orange!";
echo "<br>";
}
echo "while 循环";
echo "<br>";
$x = 1;
while ($x <= 5){
echo "这个数字是 :$x <br>";
$x++;
}
echo "do while 循环 最少运行一次";
echo "<br>";
$x = 1;
do{
echo "这个数字是 :$x <br>";
$x++;
}while($x<5);
echo "for 循环";
for($x=0; $x<=10; $x++){
echo "数字是: $x <br>";
}
echo "foreach 循环输出数组";
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value){
echo "$value <br>";
}
echo "php 用户定义函数 ";
echo "<br>";
function sayHi(){
echo "Hello world!";
}
sayHi();
echo "php 函数参数";
echo "<br>";
function familyName($fname){
echo "$fname zhong. <br>";
}
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
echo "php 函数多个参数";
echo "<br>";
function familyNameDbo($fname, $year){
echo "$fname zhong , born in $year <br>";
}
familyNameDbo("Li", "1975");
familyNameDbo("Hong", "1976");
familyNameDbo("Tao", "1977");
echo "默认参数与";
echo "<br>";
function setHeight($minheight=50){
echo "The height is : $minheight <br>";
}
setHeight(355);
setHeight(135);
setHeight(80);
setHeight();
echo "函数返回值";
echo "<br>";
function sum($x, $y){
$z = $x + $y;
return $z;
}
echo "5 + 10 = ". sum(5, 10). "<br>";
echo "7 + 13 = ". sum(7, 13). "<br>";
echo "2 + 4 = ". sum(2, 4). "<br>";
echo "<h1>16</h1>";
echo "数组 ,可以存储多个值 ";
echo "<br>";
$cars = array("porsche", "bmw", "volvo");
echo "<br>";
echo "I like ". $cars[0]. ",". $cars[1]. "and ". $cars[2]. ".";
echo "<br>";
echo "返回数组长度". count($cars);
echo "<br>";
echo "遍历索引数组";
echo "<br>";
$arrlength = count($cars);
for($x=0; $x<$arrlength;$x++){
echo $cars[$x];
echo "<br>";
}
echo " 关联数组";
$cars = array("porsche"=>"35", "bmw"=>"37", "volvo"=>"43");
echo $cars["porsche"];
echo "<br>";
echo $cars["35"];
echo "<br>";
echo "遍历关联数组";
echo "<br>";
$age = array("Bill"=>"63", "Steve"=>"56", "Elon"=>"47");
foreach($age as $x=>$x_value) {
echo "key = ". $x . " value = ". $x_value;
echo "<br>";
}
echo "数组排序函数 区分大小写,大写在前面,小写在后面";
echo "<br>";
$cars = array("porsche", "bmw", "Valolvo");
sort($cars);
for ($x=0; $x<count($cars); $x++){
echo $cars[$x];
echo "<br>";
}
$cars = array(3,5,1,22,11);
sort($cars);
for ($x=0; $x<count($cars); $x++){
echo $cars[$x];
echo "<br>";
}
echo "降序rsort";
echo "<br>";
rsort($cars);
for ($x=0; $x<count($cars); $x++){
echo $cars[$x];
echo "<br>";
}
echo "关联数组排序asort";
echo "<br>";
$age = array("Bill"=>"63", "Steve"=>"56", "Elon"=>"47");
asort($age);
foreach ($age as $x=>$x_value){
echo "key = " . $x. " value = " . $x_value;
echo "<br>";
}
echo "关联数组排序krsort";
echo "<br>";
krsort($age);
foreach ($age as $x=>$x_value){
echo "key = " . $x. " value = " . $x_value;
echo "<br>";
}
$x = 30;
$y = 65;
function addition(){
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
echo "PHP $_SERVER";
echo "在server中访问重要元素";
echo "<br>";
echo "返回当前执行脚本的文件名";
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo "返回服务器试用的CGI规范版本";
echo $_SERVER['GATEWAY_INTERFACE'];
echo "<br>";
echo "返回当前运行的脚本所在服务器ip";
echo $_SERVER['SERVER_ADDR'];
echo "<br>";
echo "返回当前运行脚本所在的服务器主机名";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo "返回服务器标识字符串";
echo $_SERVER['SERVER_SOFTWARE'];
echo "<br>";
echo "返回请求页面时的通讯协议的名称和版本";
echo $_SERVER['SERVER_PROTOCOL'];
echo "<br>";
echo "返回访问页面使用的请求方法";
echo $_SERVER['REQUEST_METHOD'];
echo "<br>";
echo "返回请求开始时的时间戳";
echo $_SERVER['REQUEST_TIME'];
echo "<br>";
echo "返回查询字符串,如果是通过查询字符串访问此页面";
echo $_SERVER['QUERY_STRING'];
echo "<br>";
echo "返回来自当前请求的请求头";
echo $_SERVER['HTTP_ACCEPT'];
echo "<br>";
echo "返回来自当前请求的Accept_Charset头";
echo $_SERVER['HTTP_ACCEPT_CHARSET'];
echo "<br>";
echo "返回来自当前请求的host头";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo "返回当前页面的完整url 不可靠,因为不是所有用户代理都支持";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo "是否通过安全https协议查询脚本";
echo $_SERVER['HTTPS'];
echo "<br>";
echo "返回游览器当前页面的用户的ip地址";
echo $_SERVER['REMOTE_ADDR'];
echo "<br>";
echo "返回游览器当前页面的用户主机名";
echo $_SERVER['REMOTE_HOST'];
echo "<br>";
echo "返回用户机器上链接到的web服务器所使用的端口";
echo $_SERVER['REMOTE_PORT'];
echo "<br>";
echo "返回当前执行脚本的绝对路径";
echo $_SERVER['SCRIPT_FILENAME'];
echo "<br>";
echo "该值指明了apache服务器配置文件中的server_admin参数";
echo $_SERVER['SERVER_ADMIN'];
echo "<br>";
echo "web服务器使用的端口 默认80";
echo $_SERVER['SERVER_PORT'];
echo "<br>";
echo "返回服务器版本和虚拟主机名";
echo $_SERVER['SERVER_SIGNATURE'];
echo "<br>";
echo "当前脚本所在系统(非文档跟目录)的基本路径";
echo $_SERVER['PATH_TRANSLATED'];
echo "<br>";
echo "返回当前脚本的路径";
echo $_SERVER['SCRIPT_NAME'];
echo "<br>";
echo "返回当前页面的SCRIPT_URI";
echo $_SERVER['SCRIPT_URI'];
echo "<br>";
?>
2. 请求
<html>
<body>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
Name:<input type='text' name='fname'>
<input type='submit'>
</form>
<a href="text3.php?subject=php&web=www.baidu.com"> 测试$GET</a>
</body>
</html>
<?php
echo " php 请求 $_REQUEST";
echo "手机html表单提交的数据";
$name = $_REQUEST['fname'];
echo "<br>";
echo $name;
$name = $_POST['fname'];
echo $name;
echo "<br>";
$name = $_GET['web'];
echo $name;
echo "<br>";
$name = $_GET['subject'];
echo $name;
?>