上海网站制作哪家奿,网站建设以及推广销售客户怎么找,汕头市建设局网站首页,上海网站建设品以.php作为后缀结尾的文件#xff0c;由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 ?php 开始#xff0c;以 ? 结束。 !DOCTYPE html
html
bodyh1My first PHP page/h1?php
… 以.php作为后缀结尾的文件由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 ?php 开始以 ? 结束。 !DOCTYPE html
html
bodyh1My first PHP page/h1?php
echo Hello World!;
?/body
/html
二、变量 PHP中无声明变量$变量名即为PHP的变量在赋值的时候自动创建变量。 ?php
$txtHello world!;
$x5;
$y10.5;
? PHP 变量规则 变量以 $ 符号开始后面跟着变量的名称变量名必须以字母或者下划线字符开始变量名只能包含字母、数字以及下划线A-z、0-9 和 _ 变量名不能包含空格变量名是区分大小写的$y 和 $Y 是两个不同的变量 三、数据类型
1.String字符串
单行字符串 由双引号包裹的字符组成的序列。 ?php
$x Hello world!;
echo $x;
echo br;
$x Hello world!;
echo $x;
?
字符串连接并置运算符 字符串的连接用并置运算符的 . 连接。 ?php
$txt1Hello world!;
$txt2What a nice day!;
echo $txt1 . . $txt2;
?
字符串查找strpos()函数 用来在目标字符串里查找子串第一个参数是目标字符串第二个参数是要查找的子串返回子串第一次出现的位置。 ?php
echo strpos(Hello world!,world);
?
//返回6
字符串长度strlen()函数 返回字符串的长度。 ?php
echo strlen(Hello world!);
?
多行字符串EOF 定义多行字符串的方法可以用来输出html代码块。 ?php
$x EOFh1我的第一个标题/h1p我的第一个段落。/p
EOF;
// 结束需要独立一行且前后不能空格
echo $x
? 注意事项 EOF可以用任意大写字符代替但要保证开始字符和结束字符相同。结束字符需要独立一行且前后不能空格位于开始标记和结束标记之间的变量可以被正常解析但是函数则不可以。在EOF中变量不需要用连接符 . 或 , 来拼接。 2.Integer整型 整型可以用三种格式来指定十进制 十六进制 以 0x 为前缀或八进制前缀为 0。 ?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);
? var_dump(变量名可以输出变量的数据类型和值还可以显示关于一个或多个表达式的结构信息包括表达式的类型与值。数组将递归展开值通过缩进显示其结构。 ?php
$a array(1, 2, array(a, b, c));
var_dump($a);
?
3.Float浮点型 浮点数是带小数部分的数字或是指数形式。 ?php
$x 10.365;
var_dump($x);
echo br;
$x 2.4e3;
var_dump($x);
echo br;
$x 8E-5;
var_dump($x);
?
4.Boolean布尔型 布尔型可以是 TRUE 或 FALSE布尔型通常用于条件判断。 $xtrue;
$yfalse;
5.Array数组
创建数组 使用函数 array创建数组。 ?php
$carsarray(Volvo,BMW,Toyota);
var_dump($cars);
?
数值数组 数值数组就是普通的一维数组。 ?php
$carsarray(Volvo,BMW,Toyota);
echo I like . $cars[0] . , . $cars[1] . and . $cars[2] . .;
?
关联数组 关联数组更像映射map数组需要指定键值和键名键名要用符号 与键值连接。 ?php
$agearray(Peter35,Ben37,Joe43);
echo Peter is . $age[Peter] . years old.;
?
多维数组
语法
array (array (elements...),array (elements...),...
) 多维数组就是一维数组里的元素还是一维数组。 ?php
// 二维数组:
$cars array
(array(Volvo,100,96),array(BMW,60,59),array(Toyota,110,100)
);
?
?php
$sites array
(runoobarray(菜鸟教程,http://www.runoob.com),googlearray(Google 搜索,http://www.google.com),taobaoarray(淘宝,http://www.taobao.com)
);
print(pre); // 格式化输出数组
print_r($sites);
print(/pre);
? 遍历数组 count函数返回数组的长度 ?php
$carsarray(Volvo,BMW,Toyota);
$arrlengthcount($cars);for($x0;$x$arrlength;$x)
{echo $cars[$x];echo br;
}
?
数组排序 sort() - 对数组进行升序排列rsort() - 对数组进行降序排列asort() - 根据关联数组的值对数组进行升序排列ksort() - 根据关联数组的键对数组进行升序排列arsort() - 根据关联数组的值对数组进行降序排列krsort() - 根据关联数组的键对数组进行降序排列 ?php$carsarray(Volvo,BMW,Toyota);sort($cars);
?
6.Object对象 使用class声明对象内部要定义一个构造函数在新建对象时候自动调用。 ?php
class Car
{var $color;function __construct($colorgreen) {//构造函数$this-color $color;}function what_color() {return $this-color;}
}
?
7.Resource资源类型 resource 是一种特殊变量保存了到外部资源的一个引用。常见资源数据类型有打开文件、数据库连接、图形画布区域等。 由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄因此将其它类型的值转换为资源没有意义。 使用 get_resource_type() 函数可以返回资源resource类型。 ?php
$c mysql_connect();
echo get_resource_type($c).\n;
// 打印mysql link$fp fopen(foo,w);
echo get_resource_type($fp).\n;
// 打印file$doc new_xmldoc(1.0);
echo get_resource_type($doc-doc).\n;
// 打印domxml document
?
七、条件判断语句
if.......else条件语句
?php
$tdate(H);
if ($t10)
{echo Have a good morning!;
}
elseif ($t20)
{echo Have a good day!;
}
else
{echo Have a good night!;
}
?
switch条件语句
?php
$favcolorred;
switch ($favcolor)
{
case red:echo 你喜欢的颜色是红色!;break;
case blue:echo 你喜欢的颜色是蓝色!;break;
case green:echo 你喜欢的颜色是绿色!;break;
default:echo 你喜欢的颜色不是 红, 蓝, 或绿色!;
}
?
八、循环
1.while循环
html
body?php
$i1;
while($i5)
{echo The number is . $i . br;$i;
}
?/body
/html 2.do....while循环
html
body?php
$i1;
do
{$i;echo The number is . $i . br;
}
while ($i5);
?/body
/html
3.for循环
?php
for ($i1; $i5; $i)
{echo 数字为 . $i . PHP_EOL;
}
?
4.foreach循环
语法数值数组 每进行一次循环当前数组元素的值就会被赋值给 $value 变量数组指针会逐一地移动在进行下一次循环时您将看到数组中的下一个值。 foreach ($array as $value)
{要执行代码;
} 案例
?php
$xarray(Google,Runoob,Taobao);
foreach ($x as $value)
{echo $value . PHP_EOL;//PHP_EOL: 这是一个 PHP 内置的常量表示特定操作系统下的换行符。
}
?
语法关联数组 每一次循环当前数组元素的键与值就都会被赋值给 $key 和 $value 变量数字指针会逐一地移动在进行下一次循环时你将看到数组中的下一个键与值 foreach ($array as $key $value)
{要执行代码;
}
案例
?php
$xarray(1Google, 2Runoob, 3Taobao);
foreach ($x as $key $value)
{echo key 为 . $key . 对应的 value 为 . $value . PHP_EOL;
}
?
九、函数
1.自定义函数
语法
?php
function functionName()
{// 要执行的代码return 返回值
}
?
案例
?php
function add($x,$y)
{$total$x$y;return $total;
}echo 1 16 . add(1,16);
?
2.isset函数
语法
bool isset( $var )返回值 isset() 返回一个布尔类型的值。 true 变量「已定义」false变量「未定义」或变量为 NULL 或 变量被 unset() 3.include函数和require函数 二者的作用都是在一个php文件插入另一个文件并执行但二者有区别。 require 一般放在 PHP 文件的最前面程序在执行前就会先导入要引用的文件include 一般放在程序的流程控制中当程序执行时碰到才会引用简化程序的执行流程。 require 引入的文件有错误时执行会中断并返回一个致命错误include 引入的文件有错误时会继续执行并返回一个警告。对于include() 语句来说在执行文件时每次都要进行读取和评估对于 require() 来说文件只处理一次实际上文件内容替换 require() 语句 案例
?php
include test-nothing.php;
echo abc;
? 十、常量
定义常量define
语法
bool define ( string $name , mixed $value [, bool $case_insensitive false ] )case_insensitive 可选参数如果设置为 TRUE该常量则大小写不敏感默认是大小写敏感的。 案例
?php
// 区分大小写的常量名
define(GREETING, 欢迎访问 Runoob.com);
echo GREETING; // 输出 欢迎访问 Runoob.com
echo br;
echo greeting; // 输出 greeting但是有警告信息表示该常量未定义
? 定义常量const
语法
const CONSTANT_NAME value;
案例
const SITE_URL https://www.runoob.com;
echo SITE_URL; // 输出 https://www.runoob.com
总结 这两种常量的定义方法在引用时候无需加$因为其为常量不是变量。 十一、超级全局变量 超级全局变量superglobals 这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明就可以在函数及类中使用。 变量名解释 $_COOKIE 存储客户端的 Cookie 数据的全局数组 $_GET接受所有以 get 方式发送的请求的全局数组$_POST接受所有以 post 方式发送请求的全局数组 $_REQUEST 用于收集来自 HTTP 请求的数据 1.$_GET 获取url问号后面的数据在url里#是锚定位符GET方法无法获取锚定位符后面的内容。 案例
?php
$name $_GET[name]; // John
$age $_GET[age]; // 25 echo 姓名: . htmlspecialchars($name) . br;
echo 年龄: . htmlspecialchars($age); //htmlspecialchars() 或 filter_input()可以避免SQL 注入和 XSS跨站脚本攻击
?
?php
$q isset($_GET[q])? htmlspecialchars($_GET[q]) : ;
if($q) {if($q RUNOOB) {echo 菜鸟教程brhttp://www.runoob.com;} else if($q GOOGLE) {echo Google 搜索brhttp://www.google.com;} else if($q TAOBAO) {echo 淘宝brhttp://www.taobao.com;}
} else {?form action methodget input typeradio nameq valueRUNOOB /Runoobinput typeradio nameq valueGOOGLE /Googleinput typeradio nameq valueTAOBAO /Taobaoinput typesubmit value提交
/form?php
}
?
2.$_POST 获取由POST方法提交的参数。 案例
?php
$q isset($_POST[q])? $_POST[q] : ;
if(is_array($q)) {$sites array(RUNOOB 菜鸟教程: http://www.runoob.com,GOOGLE Google 搜索: http://www.google.com,TAOBAO 淘宝: http://www.taobao.com,);foreach($q as $val) {// PHP_EOL 为常量用于换行echo $sites[$val] . PHP_EOL;}} else {?form action methodpost input typecheckbox nameq[] valueRUNOOB Runoobbr input typecheckbox nameq[] valueGOOGLE Googlebr input typecheckbox nameq[] valueTAOBAO Taobaobrinput typesubmit value提交
/form?php
}
? 3.$_COOKIE
设置Cookie
语法
setcookie(name, value, expire, path, domain); 参数说明 name必需: 这是 cookie 的名称。它是一个字符串必须符合变量命名规则。 value必需: 这是与 cookie 关联的值。它是一个字符串表示你要存储在客户端的内容。 expire可选: 这是 cookie 过期的时间。它是一个 Unix 时间戳即从1970年1月1日到现在的秒 数可以通过 time() 函数来获取当前的时间戳。如果设置为 0cookie 会在浏 览器会话结束时过期如果设置为将来的时间则 cookie 会在指定的时间到期。 path可选: 这是 cookie 可用的路径。默认值是当前脚本的路径。设置此参数可以限制 cookie 的可用范围。例如如果设置为 /那么该 cookie 可以在整个域名下的所有路径中使用。 domain可选: 这是 cookie 可用的域名。可以用来设置 cookie 的作用域。默认情况下cookie 将只在所发出的域名下有效。如果指定了子域名例如 example.com则 cookie 也可以在子域名如 www.example.com 和 sub.example.com下使用。 案例 setcookie() 函数用于设置 cookie且setcookie() 函数必须位于 html 标签之前。 ?php
$expiretime()60*60*24*30;
setcookie(user, runoob, $expire);
?html
.....获取Cookie的值 使用$_COOKIE超级全局数组来获取前面设定的Cookie值。 html
head
meta charsetutf-8
title菜鸟教程(runoob.com)/title
/head
body?php
if (isset($_COOKIE[user]))echo 欢迎 . $_COOKIE[user] . !br;
elseecho 普通访客!br;
?/body
/html案例使用了isset函数来判断是否设置了Cookie 4.$_REQUEST $_REQUEST 是 PHP 中的一个超全局数组用于收集来自 HTTP 请求的数据。它包含了 $_GET、$_POST 两个数组中传递的数据。使用 $_REQUEST 时可以方便地获取这两种方式发送的请求参数。 案例
// 假设用户通过 GET 或 POST 请求传递了一个名为 username 的参数
$username $_REQUEST[username]; // 处理参数...
echo Hello, . htmlspecialchars($username);
十二、面向对象类
十三、命名空间
1.定义命名空间
语法
?php
// 定义代码在 MyProject 命名空间中
namespace MyProject; // ... 代码 ... 案例 单个文件多个命名空间不推荐
?php
namespace MyProject;const CONNECT_OK 1;
class Connection { /* ... */ }
function connect() { /* ... */ }namespace AnotherProject;const CONNECT_OK 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
? 案例 单个文件多个命名空间推荐
?php
namespace MyProject {const CONNECT_OK 1;class Connection { /* ... */ }function connect() { /* ... */ }
}namespace AnotherProject {const CONNECT_OK 1;class Connection { /* ... */ }function connect() { /* ... */ }
}
?当使用全局代码和命名空间代码混用时候必须使用花括号{}并且HTML页面代码应该另写在一个不包含命名空间的文件里通过require和include函数来引入。 ?php
namespace MyProject {const CONNECT_OK 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}namespace { // 全局代码
session_start();
$a MyProject\connect();
echo MyProject\Connection::start();
}
? 2.子命名空间 相当于目录与子目录的关系 ?php
namespace MyProject\Sub\Level{ //声明分层次的单个命名空间const CONNECT_OK 1;class Connection { /* ... */ }function Connect() { /* ... */ }
}?十四、文件操作 1.fopen()函数 用于在php打开文件。 语法
fopen(文件名参数 案例
html
body?php
$filefopen(welcome.txt,r);
?
/body
/html
2.fwrite()函数 用来向文件写入信息。 语法
fwrite(file,string,length)
//file 必需。规定要写入的打开文件。
//string 必需。规定要写入文件的字符串。
//length 可选。规定要写入的最大字节数。 案例
?php
$file fopen(test.txt,w);
echo fwrite($file,Hello World. Testing!);
fclose($file);
?
3.fclose()函数 用来关闭文件。 案例
?php
$file fopen(test.txt,r);//执行一些代码fclose($file);
?
4.feof() 函数 检测是否已到达文件末尾EOF返回值为bool类型。 注意在 w 、a 和 x 模式下您无法读取打开的文件 案例
if (feof($file)) echo 文件结尾;
5.fgets() 函数 从文件中逐行读取文件。 注意在读取完一行后指针会移动到新的一行。 案例
?php
$file fopen(welcome.txt, r) or exit(无法打开文件!);
// 读取文件每一行直到文件结尾
while(!feof($file))
{echo fgets($file). br;
}
fclose($file);
?
6.fgetc() 函数 从文件中逐字符地读取文件。 注意在调用该函数之后文件指针会移动到下一个字符。 案例
?php
$filefopen(welcome.txt,r) or exit(无法打开文件!);
while (!feof($file))
{echo fgetc($file);
}
fclose($file);
?
参考资料
PHP 教程 | 菜鸟教程 (runoob.com)