这是我参与更文挑战的第21天,活动详情查看: 更文挑战
php相关知识
PHP(全称:PHP:Hypertext Preprocessor
,即"PHP:超文本预处理器")是一种通用开源脚本语言。
PHP 文件
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
- PHP 文件的默认文件扩展名是 ".php"
PHP知识点
- 开始标记
<?php
和结束标记?>
。开始标记和结束标记之间的内容作为PHP代码解析和执行。 - 获取get请求参数使用
$_GET
<body>
<div id="head"></div>
<div id="content">
<?php
$id=$_GET['id'];// 获取get查询字符串参数
if($id=='1'){
// 读取1.txt文件内容 并 输出echo
$str = file_get_contents('./1.txt');
echo $str;
}
?>
</div>
<div id="footer"></div>
</body>
echo
输出内容
echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总为 1
<?php
echo "我要学 PHP!<br>";
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
print "我要学习 PHP!";
?>
- 使用
//
和/**/
进行注释 - 变量以
$
开头,没有声明变量的命令,变量在第一次赋值时被创建,直接使用即可,字母数字下划线组成(数字不能在首位),初次定义变量最好给定值。 - 常量不能被更改,定义常量
define('PI',3.1415926)
,一个常量由英文字母、下划线、和数字组成,数字不能为首字母(常量名不需要加$
修饰符)。常量在整个脚本中都可以使用。常量只能是boolean、integer、float、string类型。 define('PI',3.1415926)
是个函数,如果常量定义过返回为true,没定义过返回false。var_dump()
用于输出变量的相关信息。print_r()
用于打印变量,以更容易理解的形式展示。- PHP数据类型:
标量类型 —— String(字符串), Integer(整型,PHP_INT_MAX
和PHP_INT_MIN
), Float(浮点型,浮点数是带小数部分的数字,或是指数形式), Boolean(布尔型);
复合类型 —— Array(数组), Object(对象), callable(可调用);
特殊类型 —— resource(资源) , NULL(空值,null不区分大小写)。
- 数组。使用
array()
或[]
(>=php5.4)定义数组
count()
函数返回数组的长度
- 索引数组:带有数字索引的数组。
- 关联数组:带有指定键的数组。使用分配给数组的指定键的数组(键为字符串string或整型int)
- 多维数组 - 包含一个或多个数组的数组
<?php
// 创建索引数组
$cars=array("Volvo","BMW","Toyota");
// $cars=["Volvo","BMW","Toyota"];
// $cars[0]="Volvo";
// $cars[1]="BMW";
// $cars[2]="Toyota";
var_dump($cars);
echo count($cars); // count()数组长度
// 遍历索引数组
$arrlength=count($cars);
for($i=0;$i<$arrlength;$i++) {
echo $cars[$i];
echo "<br>";
}
echo "<br>";
$arrlength=count($cars);
// 数组元素类型不一致
$stu0 = array('张三',13);
// 关联数组 关联数组是使用分配给数组的指定键的数组(键为字符串string或整型int)。
// 两种创建关联数组的方式
$stu1 = array(
'name'=>'张三',
'age'=> 13
);
$stu2['name']='李四';
$stu2['age']=14;
//遍历
foreach($stu2 as $key=>$value)
{
echo $key . " 是:" . $value;
echo "<br>";
}
?>
- 哪些值等于FALSE
-
- 布尔值FALSE本身
-
- 整型0
-
- 浮点型0.0
-
- 空字符串和字符串"0"
-
- 不包括任何元素的数组
-
- 特殊类型NULL(包括尚未赋值的变量)
-
- 从空标记生成SimpleXML对象
所有其他值都被认为是TRUE(包括任何资源 和 NAN)
(bool)
类型转换
<?php
$int_a=0;
var_dump( (bool)$int_a ); // false
?>
- 表达式:任何有值的东西。
表达式是PHP最重要的基石,几乎所写的任何东西都是一个表达式。
最基本的表达式形式是常量和变量。如$a = 5
,“5”的值为5,“5”是一个值为5的表达式;$b = $a
,$a
是一个值也为5的表达式。
函数也是表达式。
PHP 是一种面向表达式的语言
- 运算符
- 算数运算符
- 赋值运算符
- 递增递减运算符
- 比较运算符
- 逻辑运算符
- 字符串运算符
- 流程控制
-
顺序 标准执行时是顺序执行
-
条件
1)- if语句
一种直接使用if(...elseif...else)语句条件判断和执行。
另一种使用<?php if(true): ?>
和<?php endif; ?>
在网页中实现条件语句(<?php if(true): ?>
、<?php elseif: ?>
、<?php else: ?>
和<?php endif; ?>
)
<?php
if(true){
echo '<h1 class="head">这是一个标题</h1>';
echo '<h1 class=\'head\'>这是一个标题</h1>';
}
else if(true){
}
elseif(true){
}
else{
}
?>
<?php if(true): ?>
<h1 class="head">这是一个标题</h1>
<?php endif; ?>
2)- switch语句
使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。
switch (expression)
{
case label1:
// expression = label1 时执行的代码 ;
break;
case label2:
// expression = label2 时执行的代码 ;
break;
default:
// 表达式的值满足以上所有case时执行的代码;
}
- 循环
1)- while循环
while(true){
}
替代语法
<?php while(): ?>
// code
<?php endwhile; ?>
2)- foreach循环
foreach( $as as $a ){
}
和
foreach( $as as $a_key => $a_value ){
}
替代语法
<?php foreach(expr): ?>
// 循环体
<?php endforeach; ?>`
3)- for循环
可以指定循环次数。
for (init counter; test counter; increment counter) {
code to be executed;
}
for ($x=0; $x<=10; $x++) {
echo "数字是:$x <br>";
}
- 函数
<?php
function functionName($a,$b){
}
// 默认值参数
function functionName($a,$b=4){
// 返回值
// return $value
}
?>
- PHP变量作用域:变量的作用域是脚本中变量可被引用/使用的部分(范围)。
PHP 有四种不同的变量作用域:local、global、static、parameter
- 局部和全局作用区
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
PHP 将所有全局变量存储在一个名为$GLOBALS[name]
的数组,函数内部可通过$GLOBALS
访问
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
对应着$GLOBALS
方式
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
- Static作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,如果希望某个局部变量不要被删除。可以在第一次声明变量时使用static关键字:
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest(); //0
myTest(); //1
myTest(); //2
?>
- parameter参数作用域 (形参)
参数声明作为函数声明的一部分。
function myTest($x)
{
echo $x;
}
myTest('Galois');
myTest(8888);
- 类和对象
属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。
<?php
// 继承
class ClassName extends ParentClass{
/* 成员变量 */
var $url;
var $title;
// 构造函数
function __construct( $par1, $par2 ) {
$this->url = $par1;
$this->title = $par2;
}
// 析构函数
function __destruct() {
print "销毁 " . $this->name . "\n";
}
function printIP()
{
echo $this->url;
echo $this->title;
}
}
// 创建对象
$obj=new ClassName();
?>
- 文件拆分
模块化编程。使用require
或include
关键字引入其他php文件,之后既可以使用这个文件中的php代码、函数、变量等
require_once
和include_once
可以多次引入同一文件而不报错。两者均为只引入一次,不会重复引入。
// 文件a.php
<?php
function add($a,$b){
return $a+$b;
}
?>
// 文件b.php
<?php
require './a.php'; // 报错级别比include高
// include './a.php'; // 引入错误后面代码仍可执行
// require_once('./a.php'); // require_once "./a.php";
// include_once "./a.php"; // include_once('./a.php');
$c=add(3,4);
echo $c;
?>
- 常用函数
printf()
输出格式化的字符串sprintf()
返回格式化的字符串print()
输出(一个)字符串,只能有一个参数。
<?php
$name="张三";
$age=16;
// 格式化字符串输出
printf('我是%s,今年%d岁',$name,$age); // 会返回结果字符串的长度
// 返回格式化字符串
$str=sprintf('我是%s,今年%d岁',$name,$age);
echo $str;
print('打印输出');
// 退出当前执行,后面代码不再执行
exit();
?>
print_r()
以一定格式(好看的格式)打印变量
bool print_r ( mixed $expression [, bool $return ] )
参数说明:
$expression
: 要打印的变量,如果给出的是 string、integer 或 float 类型变量,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object与数组类似。
$return
: 可选,如果为 true 则不输出结果,而是将结果赋值给一个变量,false则直接输出结果。
- php单引号和双信号
单引号中的内容不会经过解释(\n不会输出为换行,变量也不会被解析为变量的值等),即内容会与输入的内容一致
双引号中的内容将会被解释,即解析内容中的变量。
-
- 双引号中插入单引号,若单引号中存在变量,变量会被解释
-
- 因为双引号的内容会被解释,所以双引号的效率会比单引号的效率低,所以,在PHP代码中尽量使用单引号;若包含变量需要进行解析时,则使用双引号
<pre></pre>
标签,用于保留换行等内容原样输出
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!