php能做什么,它是运行在服务器端的,web网站大部分数据都是存储在服务器上的,PHP就是用来处理这些存储在服务器的数据。跨平台,服务器可以是多种平台上的服务器,脚本语言,免费。

wampserver集成环境开发包:

windows
apache
mysql
php

修改端口apache,httpd.conf

<?php
$var_name = "苹果";
$n =10;
var_dump($var_name);
var_dump($n);
?>

变量名区分大小写

通过使用“memory_get_usage”获取当前PHP消耗的内存

<?php
$man = "男";
$flag = $man == "男";
echo $flag ;
echo "<br />" ;
var_dump($flag);
?>

<?php
$file=fopen("f.txt","r"); //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>

系统常量:

__FILE__ :php程序文件名

__LINE__ :PHP程序文件行数

PHP_VERSION:当前解析器的版本号

PHP_OS:当前PHP版本的操作系统名称

PHP中提供了一个错误控制运算符“@”

<?php
foreach (数组 as 值){
//执行的任务
}
?> <?php
foreach (数组 as 下标 => 值){
//执行的任务
}
?>

提示助手:

alt+/

跳转末尾:

end

全局搜索:

ctrl+h

查看快捷键

ctrl+shift+l

上传到服务器

svn插件

php函数

$arr_num = array(2,3,7,12,4);
$max_value = $arr_num[0];
foreach ($arr_num as $num) {
if($max_value < $num){
$max_value = $num;
}
}
echo $max_value;

函数结构:
构建函数:

function get_sum($a,$b){
return $a+$b;
}

调用函数:

$sum = get_sum(3,4);

函数构成部分:
关键字:function
函数名,参数列表,函数体,返回体 return
函数名以字母或下划线开头。

函数的形参,默认值,强类型参数,可变数量的参数列表,值传递和引用传递,实参,变量的作用域,static静态变量。

func_num_args()
func_get_arg()
func_get_args()

函数值传递与引用传递

传递类型:数值,对象,字符串,数组:

值传递:
function sum($a, $b){
return $a+$b;
} 引用传递:
function swap(&$a, &$b){
$tmp = $a;
$a = $b;
$b = $tmp;
}

函数变量作用域

局部变量,全局变量global,静态变量static

function test(){
static $a = 0;
echo $a++;
}
test(); // 0
test(); // 1

可变函数

echo(), print(), unset(), isset(), empty(), include(), require()
$f = 'get_add'; echo $f();

include引入一个不存在的文件只会报出一个警告,程序继续执行,而require引入一个不能存在的文件会导致一个致命的错误,程序结束运行,include_once和require_once在引入之前会进行检查,如果已经引入了就不会再进行引入,就是说保证只引入一次,避免重复引入

require(‘func.php’);//致命错误立即停止
require_once()
include(‘function.php’);//只是抛出警告信息,不终止程序
set_include_path(‘引入文件名’);

path_separator 路径分解符
restore_include_path() 取消路径
引入include路径
set_inlude_path(‘路径’);,引入同一路径下的多个文件时,这个函数可以统一写入路径。

导入文件目录下的所有文件:

set_include_path(get_include_path().PATH_SEPARATOP.'testa');

set_include_path(get_include_path().PATH_SEPARATOP.'testa');

include('test1.php');

include('test2.php');

导入testa文件下所有的文件

ini_set('include_path',get_include_path().PATH_SEPARATOP.'testa');

闭包:

function test($name, Closure $clo){
echo "hello,{$name}\n";
$clo();
} test("da",function(){
echo "dashucoding";
}); hello,dashucoding

闭包的两种参数方式:

<?php
$message="hello"
$example = function($name) use($message){
echo $message,",",$name;
};
$message = "hi";
$example("da"); // hi,da

闭包参数:

<?php
$message = "hello"; $example = function() use(&message){
echo $message;
}; $message="hi";
$example(); // hi

闭包匿名函数的说明,匿名函数也叫闭包函数,允许临时创建一个没有指定名称的函数,常用作回调函数参数的值。

闭包函数,使用use()传递变量,值传递和引用传递都可使用。Closure 匿名函数(闭包)

递归函数

定义:
函数在它的函数体内调用它自身,这种函数称为递归函数
作用:
分解问题,调用自身

$GLOBALS使用示例:

$v1 =1;
$v2 = 2;
function test(){
$GLOBALS['v2'] = &$GLOBALS['v1'];
}
test();
echo $v2; // 1

静态变量在当前作用域下不会失效,用于多次访问保存某个数据的值,但是注意静态变量的值一定不能为函数或者其他东西,他必须是一个确定的值

引用全局变
1 global variable
2 GLOBALS[""]

第一种方法不操作原始变量
第二张会操作原始变量

  1. 值传递不带&号,不能通过函数改变原来的值,因为是不同的内存空间,参数传递带&号,可以通过函数改变他的值,引用的是同一个内存空间
  2. 在函数中可以通过$global 来引用函数外的值,不过是开辟新的内存空间存储
declare(strict_types=1);

表名该php页面传递的实参如果与形参类型不一致,会出现致命性错误
强类型转换,实参与形参类型不一致,会出现致命性错误

1.PHP7的新特性
2.PHP7与PHP5的区别
3.PHP7基本变量
4.PHP7基本变量的存储与使用

结构体内存 8字节对齐,联合体复用内存

char a 1

int b 4

long 8

viod* 8

int e 4

char* f 8

union_u{…}
这里是联合体 联合体的大小为8字节 内容和结构体一样
但是不同之处它的变量是复用的 反复在这8字节存储

stuct_s{ //这里是结构体 结构体的总大小是40字节
在内存里是按字节对齐存放的 且小于4字节 的以4个字节的位置放置 单行大小为8字节对齐 整体结构体以8个字节对齐

char a; //1字节
int b;//4字节
long c;//8字节

结构体是消耗内存的。
a占了1个字节,会空出3个字节。然后b占4个字节。

判断大小端的demo

日期时间函数库

设置时区:date.timezone
通过date_default_timezone_set()动态设置时区
通过ini_set()动态设置时区

header('content-type:text/html;charset=utf-8');
echo date_default_timezone_get();
date_default_timezone_set('Asia/Shanghai');
echo ini_get('date.timezone');
int_set('date.timezone','Asia/Shanghai');
if($year%4==0 && ($year%100!=0 || $year%400==0)){
echo '是闰年';
}else{
echo "不是闰年";
}
date('L')?'是闰年':‘不是闰年’;

strtotime
strtotime将任何英文文本的日期时间描述解析为unix时间戳。

int strtotime(string $time [, int $now = time() ])
header('content-type:text/html;charset=utf-8');

这个是头部的声明:content-type表示文档的类型,是text/html即,文本和网页形式。

charset=utf-8,表示文本编码格式,即utf-8编码。

h5中的新增日期时间相关控件:

<form action="dashu.php' method="post">
<input type="date" name="datetime" id=""/><br>
<input type="datetime-local" name="datetime" id=""/><br>
</form>

日期控件插件:jquery datetimepicker插件

jquery timer plugin 插件的使用

WampServer详解的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  6. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  7. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  8. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  9. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

随机推荐

  1. pycharm安装pyinstaller将pygame打包成exe

    首先,使用pycharm自带的下载包工具,File-Settings-Project Interpreter,如图: 安装完成后,发现安装到了Python根目录下,我的在C:\python34\Scr ...

  2. [转]图片Premultiplied Alpha到底是干嘛用的

    Premultiplied Alpha 这个概念做游戏开发的人都不会不知道.Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alp ...

  3. 【JS】AJAX跨域-被调用方与调用方解决方案(二)

    解决跨域问题 跨域问题说明,参考[JS]AJAX跨域-JSONP解决方案(一) 实例,使用上一章([JS]AJAX跨域-JSONP解决方案(一))的实例 解决方案三(被调用方支持跨域-服务端代码解决) ...

  4. 【Linux】两台服务器ssh免密登录

    背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备:  服务器A  linux   ip: 192.168.1.1 服务器B  linux  ip: 192.168.1. ...

  5. dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法2

    在混淆的时候报错了,错误描述大致如下: Could not find a compatible version of ildasm to run on assembly C:\xxx.dll This ...

  6. ou can mix require and export. You can't mix import and module.exports.

    ou can mix require and export. You can't mix import and module.exports.

  7. Java设置文件权限

    今天遇到一个问题: java写的API,ppt转图片生成的目录及文件 在使用php调用API完成后,再使用php进行删除时,遇到了删除失败的问题(php删除的部分  查看) 部署的环境是Ubuntu ...

  8. Theano入门

    由于自己的一个小项目需要Theano部分的开源代码,所以学习一下并记录入门的经典网站. 入门中文博客:https://blog.csdn.net/hjimce/article/details/4680 ...

  9. TCP协议的11种状态及其变化过程?传输的内容又是什么?

    在TCP的11种状态变迁中,我们需要用到TCP头部的三个标志位: 1.SYN,SYN=1表示这是一个连接请求报文或者连接接受报文 2.ACK,ACK=1,表示确认号生效 3.FIN,FIN=1表示发送 ...

  10. Java开发笔记(一百一十八)AWT按钮

    前面介绍了如何通过AWT显示程序的窗口界面,那么要怎样在该窗口上面添加丰富多样的控件呢?注意Frame类是个窗口工具,它由窗楣(标题栏)与窗体(窗口主界面)两部分组成,故而Frame类只对整个窗口统筹 ...