当前位置: 首页 > news >正文

php知识整理

unset()函数销毁变量(不设置即为销毁)

<?php
// 销毁单个变量
unset ($var);

// 销毁单个数组元素
unset ($arr['a']);

// 销毁多个变量
unset ($var1, $var2, $var3);
?>

isset() : 检测变量是否设置。(是否设置)

bool isset ( mixed $var [, mixed $... ] )

检测变量是否设置,并且不是 NULL。如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。

php入口文件

文件入口一般分为单文件入口多文件入口,当然也有可能有其它的文件入口没见过。(入口文件,即欢迎文件,apache中一般配置为index.php或index.html,什么都不写的情况下,执行欢迎文件)

单文件入口当然是指网站访问始终都是有访问index.php这个文件,但关系到里面显示的内容却是根据后台的参数来加载,比如:http://IP/index.php? Conttoller=index&action=show&id=1(controller有时简写成c,action有时会简写成a,model简写成m,view简写成v)

多文件入口当然是指网站里面除了index.php文件名,还有其它文件访问,比如同一个网站下有index.php,about.php………..等。

入口文件主要完成:

·定义框架路径、项目路径(可选)

·定义调试模式和应用模式(可选)

·定义系统相关常量(可选)

·载入框架入口文件(必须)

explode() 函数把字符串打散为数组。(explode是爆炸的意思)

<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>

输出结果:Array ( [0] => Hello [1] => world. [2] => I [3] => love [4] => Shanghai! )

define() 函数定义一个常量

常量类似变量,不同之处在于:

  • 在设定以后,常量的值无法更改
  • 常量名不需要开头的美元符号 ($)
  • 作用域不影响对常量的访问
  • 常量值只能是字符串或数字
define(name,value,case_insensitive)
参数描述
name必需。规定常量的名称。
value必需。规定常量的值。
case_insensitive

可选。规定常量的名称是否对大小写敏感。

若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。

dirname() 函数返回路径中的目录部分(路径名称)

<?php
echo dirname("c:/testweb/home.php");
echo dirname("/testweb/home.php");
?>

输出:

c:/testweb
/testweb

basename() 函数返回路径中的文件名部分

basename(path,suffix)

参数描述
path必需。规定要检查的路径。
suffix可选。规定文件扩展名。如果文件有名有文件扩展名,将不会显示这个扩展名。

<?php
$path = "/testweb/home.php";

//Show filename with file extension
echo basename($path) ."<br/>";

//Show filename without file extension
echo basename($path,".php");
?>

上面的代码将输出:

home.php
home

$_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别

假设web根目录是 e:/myweb
先建立 e:/myweb/index.php
内容是:
<?php require 'other/index2.php'; ?>
再建立 e:/myweb/other/index2.php
内容是:
<?php
echo $_SERVER["SCRIPT_FILENAME"];
echo __FILE__;
?>
然后访问http://127.0.0.1/index.php,输出结果如下:
E:/myweb/index.php                        -------------------当前执行程序的绝对路径及文件名
E:\myweb\other\index2.php            -------------------原始文件(被包含文件)的绝对路径及文件名

reset() 函数

reset() 函数将内部指针指向数组中的第一个元素,并输出。

相关的方法:

  • current() - 返回数组中的当前元素的值
  • end() - 将内部指针指向数组中的最后一个元素,并输出
  • next() - 将内部指针指向数组中的下一个元素,并输出
  • prev() - 将内部指针指向数组中的上一个元素,并输出
  • each() - 返回当前元素的键名和键值,并将内部指针向前移动
<?php
$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "<br>"; // 当前元素是 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve
echo current($people) . "<br>"; // 现在当前元素是 Steve
echo prev($people) . "<br>"; // Steve 的上一个元素是 Bill
echo end($people) . "<br>"; // 最后一个元素是 David
echo prev($people) . "<br>"; // David 之前的元素是 Mark
echo current($people) . "<br>"; // 目前的当前元素是 Mark
echo reset($people) . "<br>"; // 把内部指针移动到数组的首个元素,即 Bill
echo next($people) . "<br>"; // Bill 的下一个元素是 Steve

print_r (each($people)); // 返回当前元素的键名和键值(目前是 Steve),并向前移动内部指针
?>

预定义变量

  • 超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量
  • $GLOBALS — 引用全局作用域中可用的全部变量
  • $_SERVER — 服务器和执行环境信息
  • $_GET — HTTP GET 变量
  • $_POST — HTTP POST 变量
  • $_FILES — HTTP 文件上传变量
  • $_REQUEST — HTTP Request 变量
  • $_SESSION — Session 变量
  • $_ENV — 环境变量
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — 前一个错误信息
  • $HTTP_RAW_POST_DATA — 原生POST数据
  • $http_response_header — HTTP 响应头
  • $argc — 传递给脚本的参数数目
  • $argv — 传递给脚本的参数数组

substr_count() 函数计算子串在字符串中出现的次数。

注释:子串是区分大小写的。

注释:该函数不计数重叠的子串。

注释:如果 start 参数加上 length 参数大于字符串长度,则该函数生成一个警告。

substr_count(string,substring,start,length)

参数描述
string必需。规定被检查的字符串。
substring必需。规定要搜索的字符串。
start可选。规定在字符串中何处开始搜索。
length可选。规定搜索的长度。

技术细节

返回值:返回子串在字符串中出现的次数。
PHP 版本:4+
更新日志:在 PHP 5.1 中,新增了 start 和 length 参数。

相关文章:

  • PHP中$_SERVER的详细用法
  • MyBatis整理
  • ButterKnife介绍
  • Android之Activity全面解析
  • Android Fragment使用详解
  • Spring的定时任务(任务调度)
  • InfluxDB详解
  • 时序数据库
  • ICMP详解
  • 各种时间定义
  • 浏览器工作原理
  • 深入浅出Object.defineProperty()
  • Android知识整理
  • Android Adapter详解
  • VNC详解
  • 【React系列】如何构建React应用程序
  • Elasticsearch 参考指南(升级前重新索引)
  • IDEA常用插件整理
  • Java 内存分配及垃圾回收机制初探
  • java2019面试题北京
  • JAVA并发编程--1.基础概念
  • Java多态
  • js数组之filter
  • js正则,这点儿就够用了
  • spring学习第二天
  • vagrant 添加本地 box 安装 laravel homestead
  • Zepto.js源码学习之二
  • 百度小程序遇到的问题
  • 测试开发系类之接口自动化测试
  • 技术胖1-4季视频复习— (看视频笔记)
  • 检测对象或数组
  • 力扣(LeetCode)357
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何设计一个比特币钱包服务
  • 使用 Docker 部署 Spring Boot项目
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 【云吞铺子】性能抖动剖析(二)
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • # Maven错误Error executing Maven
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (2)(2.10) LTM telemetry
  • (2)MFC+openGL单文档框架glFrame
  • (C#)获取字符编码的类
  • (done) 两个矩阵 “相似” 是什么意思?
  • (编译到47%失败)to be deleted
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (黑马C++)L06 重载与继承
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***监测系统的构建(chkrootkit )
  • ***详解账号泄露:全球约1亿用户已泄露
  • .gitignore
  • .jks文件(JAVA KeyStore)
  • .NET CF命令行调试器MDbg入门(三) 进程控制