教程
信息差
资源
软件工具
技术笔记
AIGC
视频
Search
1
使用AI实现高精度钢琴曲转谱Piano Transcription简明使用教程
37,794 阅读
2
使用ESP8266Wifi模块制作Wifi杀手
37,467 阅读
3
unravel 让图片唱歌详细教程 Real Time Image Animation 项目
27,386 阅读
4
佳能相机刷Magic Lantern魔灯固件
23,502 阅读
5
战地3 正版账号免费分享!
16,213 阅读
教程
信息差
资源
软件工具
技术笔记
AIGC
视频
Search
标签搜索
python
前端
环境搭建
空镜素材
Ubuntu
markdown
神器
黑苹果
编码
技巧
Git
数据库
开发
下载工具
Youtube
CDN
PDF
OST
电影原声带
音乐
易小灯塔
累计撰写
176
篇文章
累计收到
44
条评论
首页
栏目
教程
信息差
资源
软件工具
技术笔记
AIGC
视频
页面
搜索到
175
篇与
的结果
2017-08-07
Python的多任务 01
多任务多任务就是操作系统可以同时运行多个任务并行指的是任务数小于等于cpu核数,即任务真的是一起执行的并发指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)线程和进程进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。进程和线程的区别 进程通俗理解就是一个运行起来的程序或者软件就是一个进程,每次启动进程都会向操作系统索要运行资源,进程是操作系统资源分配的基本单位。 线程就是程序中执行的一个分支(实例), 每个分支可以执行不同的任务,可以完成多任务操作。 线程是cpu调度的基本单位。 线程是依附在进程里面的,没有进程就没有线程。 进程之间不共享全局变量,线程之间共享全局变量 每次启动进程都会向操作系统索要资源,线程之间共享进程的运行资源 多进程开发模式比多线程开发模式健壮性要强,因为多进程开发某个进程挂掉不会影响其它进程的运行,但是多线程开发,如果进程挂了,那么进程里面所有的线程都会销毁。
2017年08月07日
2,056 阅读
0 评论
0 点赞
2017-08-07
Python 基础概念简单总结
面向对象设计(OOP)面向过程与面向对象面向过程:根据业务逻辑从上到下写代码面向对象:面向对象是向现实世界模型的延伸, 任何物体都可以归为一类事物, 这类事物可以有很多方法和属性, 每一个个体都是一类事物的实例.面向对象有三大特性, 封装, 继承和多态封装就是将一类事物属性和行为抽象成一个类, 使其属性私有化, 行为公开化, 提高数据隐秘性, 使代码模块话, 这样使得代码复用性很高继承就是进一步将一类事物公有的属性和行为抽象成一份父类, 子类可以继承父类的方法和属性, 也有自己特有的方法和属性, 这样做扩展了已存在的代码, 进一步提高了代码的复用性.多态就是继承父类的方法后可以修改父类的方法, 就是鸭子类型, 看起来像鸭子, 走起来像鸭子,那它就是鸭子.Python的类python2与python3中新式类和经典类的区别Python3 里如果一个类没有写父类,则默认继承object。 继承的这个object就是新式类Python2 里如果一个类写了继承 object 则是 新式类,如果没写父类则是 经典类重写父类当子类重写了父类的方法后,有三种方法可以在子类调用父类的属性和方法 父类名.方法名(self,xxx,xxx,xxx,...) Animal.init(self) super().方法名(xx,xx,xx),注意,参数里不需要传 self。只在 python3 可用 super().init() super(子类名, 子类对象).方法名(xx,xx,xxx) super(Cat, self).init() 静态方法和类方法静态方法:不需要定义实例就可以使用这个方法.定义方法事需要在函数前面加上@staticmethod标记符类方法:定义类方法需要在函数前加上@classmethodcls代表类对象本身类方法可以通过类或其他实例来调用该方法__new__方法在实例化对象的时候, 在调用初始化函数之前, 先调用了__new__()方法__new__方法必须要返回一个实例化的对象__new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供继承自object的新式类才有__new__如果将类比喻为工厂,那么init()方法则是该工厂的生产工人,init()方法接受的初始化参 数则是生产所需原料,init()方法会按照方法中的语句负责将原料加工成实例以供工厂出货。而 new()则是生产部经理,new()方法可以决定是否将原料提供给该生产部工人,同时它还决定着出 货产品是否为该生产部的产品,因为这名经理可以借该工厂的名义向客户出售完全不是该工厂的产品。单例模式单例模式是一种常见的设计模式, 主要目的是确保某个类只有一个实例存在实现单例模式的几种方法:class Person(object): instance = None # 定义一个类属性 instance,用来记录第一次创建的对象 def __new__(cls, *args, **kwargs): if cls.instance == None: # 还没有创建第一个对象 cls.instance = object.__new__(cls) # 使用类属性来引用创建的第一个对象 return cls.instance def __init__(self, name): self.name = name 单例模式单例模式是一种常见的设计模式, 主要目的是确保某个类只有一个实例存在实现单例模式的几种方法:class Person(object): instance = None # 定义一个类属性 instance,用来记录第一次创建的对象 def __new__(cls, *args, **kwargs): if cls.instance == None: # 还没有创建第一个对象 cls.instance = object.__new__(cls) # 使用类属性来引用创建的第一个对象 return cls.instance def __init__(self, name): self.name = name 异常处理异常当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"捕获异常try: except: try语句中放入可能产生错误的代码 except语句中放入处理错误的代码 捕捉指定异常语法:except 异常名一次性捕捉多个异常语法: except (异常1, 异常2,..)捕捉任意异常except Exception:Python 里大部分的异常都是 Exception 的子类,所以都可以使用 Exception 来捕捉通过别名获取异常信息单个except 异常名 as 别名多个except (变量1, 变量2,..) as exp异常else,finally如果没有捕获到异常,那么就执行else中的事情在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。异常的传递如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递简单来说就是由内向外自定义异常数据类型可变数据类型列表和字典修改时,内存地址不发送改变不可变数据类型数字,字符串,元组修改时,内存地址发生改变匿名函数用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤语法格式: lambda [arg1 [,arg2,.....argn]]:expression
2017年08月07日
1,060 阅读
0 评论
0 点赞
2017-08-07
Pycharm 使用指南
PyCharm的基本使用 在PyCharm下为你的Python项目配置Python解释器器 Project:当前项目名>Project Interpreter>add Local 在PyCharm下创建Python文件、Python模块 File>New>Python File File>New>Python Package 使⽤用PyCharm安装Python第三方模块 Project:当前项目名>Project Interpreter>点击右侧绿色小加号 PyCharm基本设置,例如不不使⽤用tab、tab=4空格、字体、字体颜色、主题、脚本头设置、显示行号等。如何导出和导入自定义设置。 设置菜单字体大小:Appearance&Behavior>Appearance 设置Console&Terminal字体大小: Editor>Colors&Fonts>Console Font 设置文件编码:Editor>File Encodings IDE Encoding; Project Encoding;Properties Files都设置为UTF-8 修改背景颜色:Settings>Editor>Color&Fonts>General>右边Text下面选 中Default text>修改Background颜色即可 不使用tab、tab=4空格:Editor>Code Style>Python 字体、字体颜色:Edit>Colors & Fonts>Python 关闭自动检查更新:Appearance & Behavior>System Settings>Updates 脚本头设置:Edit>File and Code Templates>Python Script 控制光标位置:#[[$END$]]#(勾选Enable Live Templates) 其他类似 显示行号:Edit>General>Appearance>Show line numbers 注:2016.2 默认显示行号 右侧竖线是PEP8的代码规范,提示一行不要超过120个字符 导出、导入你自定义的Pycharm配置: File>Export Settings、Import Settings 常用快捷键,例例如复制当前行、删除当前行、批量注释、缩进、查找和替换。 常用快捷键的查询和配置:Keymap Ctrl + D:复制当前行 Ctrl + E:删除当前行 Shift + Enter:快速换行 Ctrl + /:快速注释(选中多行后可以批量注释) Tab:缩进当前行(选中多行后可以批量缩进) Shift + Tab:取消缩进(选中多行后可批量取消缩进) Ctrl + F:查找 Ctrl + H:替换 Ctrl + 减号:折叠当前代码块;Ctrl + 加号:展开当前代码块 Ctrl + Shift + 减号:折叠当前文件;Ctrl + Shift + 加号:展开当 前⽂文件 设置快捷键 设置修改字体大小的快捷键 PyCharm安装插件 Plugins>Browse repositories(下方三个按钮中间那个)>搜 索‘markdown support’>install。右上角View有三个选项可选。 .ignore BashSupport IdeaVim CodeGlance Git配置 需要本地安装好Git Version Control>Git 配置了了Git等版本控制系统之后,可以实时查看diff、本地回滚修改等 配置github:Settings>Version Control>GitHub>右侧填写Host、Login 及Password即可。 常用操作指南。例如复制文件路路径、在文件管理器中打开、快速定位、查看模 块结构视图、tab批量换space、TODO的使用、Debug的使用。 复制文件路径:左侧文件列列表右键选中的文件>Copy Path 在文件管理器中打开:右键选中的文件>往下找到Show In Explorer 快速定位:Ctrl + 某些内建模块之后,点击在源文件中展开 查看结构:IDE左侧边栏Structure 查看当前项目的结构 tab批量换space:Edit>Convert Indents TODO的使用:# TODO 要记录的事情,commit之前会有提示 Debug设置断点,直接点击行号与代码之间的空白处即可设置断点, debug⼀一般只需在关键点设置一个,然后debug调试时步进执行。没必 要点很多个断点 Tab页上右键>Move Right(Down),把当前Tab页移到窗口右边(下边),方便对比 文件中右键>Local History能够查看文件修改前后的对比 IDE右下角能看到一些有用的信息,光标当前在第几行的第几个字符、当 前回车换行、当前编码类型、当前Git分支 右边栏Database(点开后)>左上角绿色“+”号>下拉Data Source选择你 要连接的数据库类型>点击之后页面最下方会有提示安装驱动 (Download missing driver files) 执行某个文件中的某一行(某些行):选中要执行行的代码部分>右键 Execute Selection in Console 如何去掉烦人的波浪线?PEP8又是什什么? settings>Editor>Inspections>Python 单独一行的注释:#+1空格+注释内容 代码后跟着的注释:2空格+#+1空格+注释内容 函数前面空一行,类前面空两行 某些单词一直有下划线提示,可以右键>Spelling>Typo:Save 'xxx' to dictionary SSH Terminal: Default encoding:UTF-8 Settings>Tools>SSH Terminal>最后一行Default encoding:选择UTF-8 Live Templates(善用live templates提高开发效率) Settings>Editor>Live Templates 远程调试!边改边同步到远程服务器器,本地直接执行行远程服务器器上的代码! Build,Execution,Deployment>Deployment>点击绿色“+”添加⼀一个 Deployment配置。配置好SFTP之后可以右键上传更新后的代码文件。 Project Interpreter>Add Remote>选择Deployment configuration>下拉 框选择上面的配置>下面选择python解释器路径 关掉对话框,配置Path mappings。 参考链接:官网文 档:https://www.jetbrains.com/help/pycharm/2017.1/configuring-remote-interpreters-via-deployment-configuration.html?search=remote 善用搜索!善用搜索!善用搜索! 遇到不不懂问题,先尝试自己解决。这样才记得更更牢!
2017年08月07日
1,159 阅读
0 评论
0 点赞
2017-08-07
Typora快捷键
Typora快捷键 无序列表:输入-之后输入空格 有序列表:输入数字+“.”之后输入空格 任务列表:-[空格]空格 文字 标题:ctrl+数字 表格:ctrl+t 生成目录:[TOC]按回车 选中一整行:ctrl+l 选中单词:ctrl+d 选中相同格式的文字:ctrl+e 跳转到文章开头:ctrl+home 跳转到文章结尾:ctrl+end 搜索:ctrl+f 替换:ctrl+h 引用:输入>之后输入空格 代码块:ctrl+alt+f 加粗:ctrl+b 倾斜:ctrl+i 下划线:ctrl+u 删除线:alt+shift+5 插入图片:直接拖动到指定位置即可或者ctrl+shift+i 插入链接:ctrl+k
2017年08月07日
9,454 阅读
1 评论
2 点赞
2017-06-15
正则表达式
\d可以匹配一个数字, \w可以匹配一个字母或数字 \s可以匹配一个空格(也包括 Tab 等空白符) *表示任意个字符(包括0个) +表示至少1个字符 ?表示0个或 1 个字符 {n}表示n 个字符 {n,m}表示 n-m个字符 '-'是特殊字符,在正则表达式中,要用'\'转义 更精确地匹配,可以用[]表示范围 A|B可以匹配A 或 B ,所以(P|p)ython可以匹配'Python'或者'python' ^表示行的开头,^\d表示必须以数字开头。 $表示行的结束,\d$表示必须以数字结束 贪婪匹配 加个?就可以采用非贪婪匹配
2017年06月15日
1,096 阅读
0 评论
0 点赞
2017-06-15
修改phpmyadmin上传文件大小限制
修改php配置文件,php.iniupload_max_filesize = 100M post_max_size = 100M 一般修改这2个就行了,然后重启wampserver如果还不行,就执行下面的配置max_execution_time(php页面执行最大时间)、max_input_time(php页面接受数据最大时间)、memory_limit(php页面占用的最大内存) 配置这3个,尽量大点,还不行,修改phpmyadmin配置文件phpmyadmin config配置文件中的$cfg['ExecTimeLimit']配置选项,默认值是300,需要修改为0,即没有时间限制修改phpmyadmin安装根目录下的import页面中的$memory_limit
2017年06月15日
1,128 阅读
0 评论
0 点赞
2017-06-13
PHP 初学笔记02
对一个对象的操作 返回 return 输出 echo 调用 对类的操作 定义属性 定义方法 类定义属性声明 public 公共(默认) peotected 受保护的 private 私有的 同属性一样,类的方法也具有public,protected 以及 private 的访问控制。属性必须定义访问控制,方法可以不定义,默认问公有。非名词语言 class 类 function 方法 new 实例化一个类 return 返回 static 静态 echo 输出;打印 this 伪变量 private 私有 protected 受保护 public 公有 self 自己 parent 父 __construct 构造 $this -> 类里边调用符号 :: 类里边静态的调用符号 extends列表项 字符串操作 trim 去除空格 strlen() 获取字符串长度 mb_strlen() 获取中文字符串长度 substr() 英文字符串截取函数 mb_substr() 中文字符串截取函数 strpos() 查找定位字符串 str_replace() 字符串的替换 sprintf() 格式化字符串 implode() 字符串合并函数 explode() 字符串分割函数 addslashes() 对字符串的转义【可以防止sql注入】 preg_quote 对比比较 isset 检测变量是否存在 setcookie() 设置cookie unset 复原销毁session file_get_contents() 读取文件的内容 fopen 打开外部文件 fgets 读取文件中的一行 fread 读取文件指定长度的字符串 file_exists 判断文件或目录是否存在 is_file 判断给的文件路径是否是一个文件 is_readable 判断文件是否存在 并且是否可读 is_writeable 判断文件是否存在 并且是否可写 fileowner 获得文件的拥有者 filectime 获得文件的创建时间 filemtime 获得文件的修改时间 fileatime 获得文件的访问时间 time() 取得当前timeatamp时间戳 strtotime 相对时间戳 seconds 秒 create 创造 allocate 分配 fill 填充 destroy 销毁 line 线 string 字符串 catch 捕获 Exception 异常类 throw 抛出 message 消息 connect 连接 query 疑问 mysql_query Mysql查询函数 select 挑选 insert 插入 fetch 取得 limit 限定 result 结果 assoc 协会 mysql_close() 关闭数据库连接 函数 函数命名规则和变量一样,但是函数名称可以不区分大小写, 函数名称不支持重名,不支持重写系统函数。 函数可以上方调用也可以下方调用,因为函数是先载入内存再使用的。 函数不能直接套用嵌套里的函数,要先调用父函数。 函数返回可有可无,最多只能有一个,返回可以是任意类型的函数。 函数的参数()可以没有或有多个函数,可以传递信息到函数里边,以逗号作为分隔符。 写在function xx ()括号里的参数叫做可选参数,调用函数时写在()里的叫做必选参数。 如果既有必选又有可选,那么必选的参数写在可选参数前面 函数内的变量叫做局部变量 动态变量执行完后就释放了 static静态化变量,执行完一次后保存到内存中 global 全局变量 $func=function() 可变函数 使用时直接$func()就可以使用function() print_r() 打印 echo 输出 var_dump 打印 回调函数,自己调用自己 通过include或include_once包含引用,可以在有错误的情况下继续执行下面的语句。 require 引用包含文件可以,可以引用多次 require_once 包含一次 类 实例化一个对象 用new函数 调用属性 ->xxx ; 调用方法 ->xxx() ; ()括号里边可以带参数 初始化是对对象赋一个默认的值 $this-> 用于访问对象这个变量自身构造函数通过function **constuct()括号里输入参数来从新给class类里边的属性赋值。 输入的方式是在function** constuct()括号里的参数起变量名,在实例化new xxxx()括号里以数组的方式给里边的变量赋值。 ##析构函数 function __destuct() 在程序执行结束的时候会自动调用 通过把变量设置为空null可以触发析构函数的调用,也就是说对象不会再被使用的时候,会触发析构函数。 析构函数通常被用于清理程序所用的资源。 & 镜像引用赋值,如果不用&,就是普通的赋值传递。引用赋值对应的只有一个实体变量。 extends 继承父类 php中可以用extends关键字来表示类的继承,后面跟父类的类名,只能单继承 继承父类的元素可以通过$this->访问 pricate 私有成员 protected 受保护的成员如果子类要访问父类pricate私有成员,可以通过在父类里创建一个方法函数调用pricate的元素,再在子类里调用刚刚所创建的方法函数来访问私有成员。 static 静态属性用于保存类的公有数据 静态方法里面只能访问静态属性 静态成员不需要实例化对象就可以访问 类的内部可以通过self或者static关键字访问自身 可以通过patent关键字访问父类的静态成员 可以通过类的名称在类的定义外部访问静态成员 子类中定义和父类名称相同的方法可以对父类的方法进行重写final 防止更改(php5.5) 添加final关键字可以防止方法被子类进行重写 对于不想被任何类的继承可以在class前面添加final关键字 用parent关键字可以访问父类中被子类重写的方法 self关键字可以用于访问类自身的成员方法,也可以用于访问自身静态成员和类常量;不能用于访问类自身的属性;使用常量的时候不需要再常量的名词面前添加$符号。关键词用于访问类自身定义的静态成员,访问静态属性时需要在属性前面添加符号。 static关键词用于访问类自身定义的静态成员,访问静态属性时需要在属性前面添加$符号 #面向对象--接口 interface 接口 某个类实现(implements)了某个接口和继承(extends)某个类的区别 实现接口和继承类很相似,但是接口不能直接自己创建对象 如果创建了“会吃东西”这个接口对象,那么具体怎么吃根本不知道 继承的父类必须有该方法的具体实现,子类可以重写父类的方法,也可以不重写 接口里边的方法是不需要具体实现的,只要定义 了方法的名词和参数就可以了,具体的实现必须在实现类中定义。 一句话概括:类的方法必须有实现,接口的方法必须为空 abstract 抽象的类
2017年06月13日
654 阅读
0 评论
0 点赞
2017-06-10
PHP 初学笔记01
输出打印语句** echo var_dump print_r 书写规范 每行语句后面以;号结束 字符型的值用"" ''单引号或双引号来包含 双引号里的变量会被解析,而单引号里边的变量不被解析 在双引号字符串里使用[]包含数组或方法函数对象也可以被解析 在双引号字符串里可以使用{}包括表达式,里面的表达式要紧贴挂号,不能有空格。 需要转义\时用双引号 布尔类型的和数字整数浮点数不用加引号 $值名称不能以数字开头,名称不能有空格,区分大小写,函数方法名、类名也是一样 注释不可嵌套 初始化变量是个好习惯 require 一个文件出现错误的话,那么程序就会中断执行了,并会显示致命错误。有返回值 include 一个文件存在错误的话,那么程序不会中断,而是继续执行,并显示一个警告错误。没有返回值 最大整数-2147483648~2147483684 其他概念 表达式的值即为他们的返回值 赋值的操作是顺序是从右到左的 三元运算符要避免堆砌使用,避免读代码时的困难程度 ##数据类型 标量类型 boolean 布尔型:ture或false 不区分大小写 integer 整型 -xxx round()对 浮点数进行四舍五入的函数 float 浮点型 string 字符串 heredoc结构 相当于可多行书写的""双引号结构 变量会解析 nowdoc结构 相当于可多行书写的''单引号结构 不进行解析操作 字符串可以通过下标取[]或{}取字符 直接把 array , object 或 resource 转换成 string 不会得到除了其类型之外的任何有用信息 字符串转为数值:该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。 复合类型 array数组 array( key => value)创建一个数组。数组由键和值组成 键(key)可是是一个整数 integer 或字符串 string 值(value)可以是任意类型的值 每一组数组单元用,隔开,最后一个数组的,可以省略 在5.4起可以用[]替代array() 使用相同的键名会被覆盖,只剩下最后一个 如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。 key 为可选项。如果未指定,PHP 将自动使用之前用过的最大 integer 键名加上1作为新的键名,还可以只对某些单元指定键名而对其它的空置,其他键名自动会填充一个整数索引 数组单元可以通过array[key]访问 数组可以嵌套,数组的值可以是一个数组,这样数组叫做多维数组。 要修改某个值,通过其键名给该单元赋一个新值,要删除某键值对,对其调用unset()函数,删除时不会重建索引。 不写键值会默认填充一个整数索引。取值为当前最大整数索引加上1。如果没有整数索引,则键名为0 array_values 重建索引 foreach($a as $b) 遍历数组$a中的数组单元赋值给$b $foo['bar'] 方括号[]之间要加引号''避免出错 可以用array_diff()或数组运算符来比较数组 数组(Array)的赋值总是会涉及到值的拷贝。使用引用运算符&通过引用来拷贝数组 可以用count()来表示数组里元素的个数 object 对象 要创建一个新的对象object,使用new实例化一个类 new给对象开辟一个新内存空间,用了储存对象 两种特殊类型 resource 资源 资源resource是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 null 空;无类型 使用(unset)$var将一个变量转换为null将不会删除该变量或unset的值。仅仅是 返回null值而已。 伪类型 mixed 混合类型 number 数字类型 callback 回调类型 类型的强制转换 允许的强制转换有: (int), (integer) - 转换为整形 integer (bool), (boolean) - 转换为布尔类型 boolean (float), (double), (real) - 转换为浮点型 float (string) - 转换为字符串 string (array) - 转换为数组 array (object) - 转换为对象 object (unset) - 转换为 NULL (PHP 5) gettype() 查看表达式数据的类型 可以强制转换数据的类型变量 $this是一个特殊的变量,他不能被赋值. 变量默认总是传值赋值。当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量。 引用赋值&,当一个变量的值赋予另外一个变量时,改变其中的一个变量的值,会影响到另外一个变量的值。**只有有名字的变量才可以引用赋值&。 global全局变量 function里不能直接调用局部变量,要把变量变为全局变量才可以调用 $GLOVALS声明引用全局作用域中的全部变量,一个保护了全部变量的全局组合数组。变量的名字就数组的键。 超全局变量>全局变量>局部变量 注意局部,域的概念 static静态变量 一般函数内变量在函数结束后被释放,比如局部变量。使用静态函数可以在下次再调用这个函数的时候,该变量值会保存下来 静态变量如果在声明中对表达式赋值会导致解析错误 引用赋值和静态变量有可能会有冲突 可变变量 $$a变量名可以是变量,叫做可变变量 如果出现运算顺序模棱两可的情况下时,可以使用大括号{}调整顺序,清晰定界 类的属性也可以用变量名来访问 在PHP的函数和类的方法中,超全局变量不能用作可变变量。$this变量也是一个特殊的变量,不能被动态引用。 常量 使用define()来定义常量 一个常量一旦被定义,就不能再改吧或者取消定义 常量前面没有$符号 常量的值只能是标量 常量要大写 php5.3之后可以用 const定义一个常量,要写在页头 魔术常量 __LINE__ 文件中的当前行号 __FILE__ 文件完整的路径和文件名 __DIR__ 文件所在的目录。如果用在被包括的文件中,则返回被包括的文件所在的目录。除非是根目录,否则目录中名不包括末尾的斜杠\。 __FUNCTION__ 函数名称。php5起常量返回该函数被定义的名字(区分大小写) __CLASS__ 类的名称。 __TRAIT__triat的名字。 __METHOD__ 类的方法名。返回改方法被定义时的名字 __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的。 表达式 $a+=3意思是取变量$的值,加上,得到的结果再次分配给a的值,加上3,得到的结果再次分配给$a。 $a?$b:$c 如果第一个表达式的值是true(非零),那么计算第二个子表达式的值,其值为证表达式的值。否则,将是第3个子表达式的值 运算符 左结合:从左往右。右结合:从右向左 使用括号可以增加代码的可读性 %取模运算结果会强制转化为整数 赋值运算符=,数组array赋值运算符=>,传递赋值运算符& 注意赋值运算将原变量的值拷贝到新变量中(传值赋值),所以改变其中的一个并不影响另一个。这也适合于在密集循环中拷贝一下值例如大数组。 在php中普通的传值行为有个例外就是碰到对象object时,在php5中式以引用赋值的,除非明确使用了clone关键字来拷贝 php5起,new运算符自动返回一个引用,因此再对new的结果进行引用赋值在php5.3以后版本中会出现错误 @错误控制符。当将其放置在一个php表达式之前,该表达式可能产生的任何错误信息都被忽略掉。此运算符只对表达式有效。 ++$a等于计算$a+1并把值再赋予$a,已经得到运算值 $a++等于$a的值等于$a+1,还未得到运算值 .=字符串连接赋值运算符,它将把右边的参数附加到左边的参数之后。 数组运算$a+$b把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只使用左边数组中的,右边的被忽略 类型运算符instanceof用于确定一个php变量是否属于某一类class的实例 流程控制 替代语法:PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。不支持在同一个控制块内混合使用两种语法。 while(){}循环:表达式的值每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果while表达式一开始就是false,则循环语句一次都不会执行。 do-while 其他 包含文件的语句 - 返回语句 return 各种循环语句 for(){} wile(){} swite(){} 数组的概念 创建和读取数组 array 数据库 连接,增删改查操作 contont 函数方法 function() 自带函数 魔术方法 类的概念 class() 对象实例化 new 对象调用$this-> 正则表达式mvc框架的概念 控制器概念 面向对象编程的概念 框架
2017年06月10日
691 阅读
0 评论
0 点赞
2016-08-17
佳能相机刷Magic Lantern魔灯固件
魔灯固件属于第三方固件,通过修改RAM中的官方固件达到在不损坏机器的情况下增加原有官方固件限制或没有的功能,以此增添更多的拍摄乐趣和功能。只是一个外挂程序,并没有对机器固件做任何写操纵,该软件已经在佳能多款DC上试用过,尚无证据显示使用后会造成相机损坏。如果确有心理负担,请不要尝试使用。魔灯官网下载(英文原版) https://builds.magiclantern.fm/支持下列机型5D (classic)固件版本: 1.1.15D Mark III 1.1.3固件版本: 1.1.35D Mark III 1.2.3固件版本: 1.2.35D Mark II固件版本: 2.1.26D固件版本: 1.1.67D固件版本: 2.0.360D, 60Da固件版本: 1.1.150D固件版本: 1.0.9700D / Rebel T5i固件版本: 1.1.5650D / Rebel T4i固件版本: 1.0.4600D / Rebel T3i固件版本: 1.0.2550D / Rebel T2i固件版本: 1.0.9500D / Rebel T1i固件版本: 1.1.11100D / Rebel T3固件版本: 1.0.5EOS M固件版本: 2.0.2100D / Rebel SL1固件版本: 1.0.170D固件版本: 1.1.21200D / Rebel T5固件版本: 1.0.2450D / Rebel XSi固件版本: 1.1.05D Mark III 1.3.4固件版本: 1.3.4EOS M 2.0.3固件版本: 2.0.3550D/T2i 1.1.0固件版本: 1.1.07D 2.0.6固件版本: 2.0.6刷入方法注意: 刷入前先升级相机固件版本到和魔灯固件一样的固件版本第一步: 首先将相机设为M模式第二步: 按MENU键,进入菜单,使用相机格式化功能格式化SD卡 进入格式化菜单后选择“低级格式化”,点确认,开始格式化SD卡第三步: 将SD卡插入读卡器,将压缩文件包中的文件拷到SD卡第四步: 将SD卡插回相机,按MENU键,进入固件升级菜单进入固件升级菜单后,点击确定开始升级升级过程不要按任何按键(大约5-10秒左右),直到出现绿色的字。 关键:出现绿色字后,30秒内一定要按电源键关机,否则绿色字消失,会进入自动卸载流程,白装了,切记。注:按垃圾桶删除键进入魔灯界面 半按快门键退出魔灯界面 Lifeview模式下,按INFO切换取景模式,多按几次可进入魔灯取景模式。有意思的功能:手控快门。挡住LCD感应器即可拍照,快门线都省了。声控快门。不论是喊还是叫,只要达到要求音量即拍照。移位拍照。视频码率控制延时拍照功能自定义快门。可以达到几个小时的曝光时间!.音频电平显示。录像模式实用,不怕音量过大了。手控ACG音频增益,关闭后可以大大降低录像时的背景噪声,还你安静的视频!可拍HDR照片。强大的ISO选择功能。100、160、200、320、400、640、800、1250、1600、2500、3200、5000、6400、12800、 25600,多种ISO感光率爽爆你的拍摄热情!卸载魔灯说明:如果不想使用了,只需要将存储卡插到读卡器上,对存储卡进行格式化操作后再插回机器上即可。切不可直接删除存储卡内文件,否则将引导失败而报错 。报错后要对存储卡格式化后即可。注意:因为固件不是刷入机器内的,所以取下或使用其它内存卡后会回到官方固件,为了保证完好的使用,建议给所有的存储卡都刷上即可。刷入固件后千万不要删除相关文件,建议将它们统统隐藏属性即可,随后的使用会在存储卡的根目录下生成设置文件,也不要删除魔灯固件菜单翻译Audio:1.Audio Meters 音频测量器2.Analog Gain 声音插值模拟增益3.L-DigitalGain 左声道增益4.R-DigitalGain 右声道增益5.AGC ACG 自动增益6.Input Source 声音输入源7.Mic Power 麦克风供电8.Output volume 输出音量9.Monitoring-USB USB 端口监听LiveV1.Global Draw 全局信息显示2.Zebras 斑马纹曝光不足区域显示3.Focus Peak 对焦峰值4.Magic Zoom MW对焦同步放大器5.Cropmks(0/7) 剪裁比例6.Ghost Image 鬼影显示,要选定一张照片按LV键7.Live Defish8.Spotmeter 点测光9.False Color 伪色图,SET为开关,Q键选种类10.Histo/Wavefm 录像时显示直方图11.ClearScreen 清屏,半按快门时/待机时Expo:1. ISO 自定感光率2. WhiteBalance 自定色温,LV模式下按Q可以检测3. WBShift G/M 自定白平衡偏移4. WBShift B/A 自定白平衡偏移5. Shutter 自定快门速度,LV模式下按Q检测6. Aperture 自定光圈7. Light Adjust 光线调节,高光色调优先/ALO浓度8. PictureStyle 照片风格9. REC PicStyle 录像的画面风格10. Contrast 对比度,LV模式下可实时查看11. Saturation 饱和度,LV模式下可实时查看12. Sharpness 清晰度13. Flash AEcomp 照片曝光补偿Movie:1. Bit Rate(CBR) 自定视频码率2. BuffWarnLevel 缓冲区报警设置3. Time Indicator 时间指示器4. Bitrate Info 比特率信息5. Movie Logging 生成短片文件日志6. Movie Restart 录像中断时(29分29秒)重新录像7. MovieModeRemap 视频模式映射8. REC/STBY notif 录制备用通知9. Movie REC key 录制热键设置10. Force LiveView 强制保持实时显示模式11. Force HDMI-VGA 强制同步输出HDIM或VGA信号Shoot:1.HDR Bracketing HDR 档次,Q关闭/SET快门数/PLAY键设置EV值。2. Take a pic ever 设定间隔拍摄时间,第三项需激活3. Intervalometer 间隔拍摄启动,PLAY或MENU件停止4. Bulb Ramping 曝光斜坡图5. Bulb Timer 自定义慢速快门6. LCD Remote Shot 使用LCD感应器拍照7. Audio RemoteShot 使用话筒感知声音拍照8. Motion Detect 运动、移位侦测拍照9. Silent/slit pic 无声图片/分割图片,文件扩展名42210. Mirror Lockup 反光板锁定,LV模式按第二次快门反光板即可复位Focus:1. Trap Focus 陷阱对焦,MF档,半按快门对焦完成即拍照2. Focus Patterns 集中对焦3. Follow Focus 按键跟焦4. Focus StepSize 焦点选择5. Focus StepDelay 对焦延迟6. Focus End Point 对焦后自动结束7. Rack focus 虚焦,LV模式下MF档调焦距8. Stack focus 对焦堆积,SET调节,PLAY运行,LV模式下Tweaks:1. LVGain(NightVision) 添加LV模式2. Exposure Simulation 模拟曝光3. DOF Preview 景深预览4. AF frame display AF 帧显示5. LCD Sensor Shortcuts 手动调整LCD亮度,挡住感应器按上下键6. Auto BurstPicQuality 自动图片分割质量7. Show cropmarks in 显示剪裁比例8.ISO selection ISO 选择9.LV Auto ISO (M mode) LV模式自动ISO10. Crop Factor Display 系数显示11.LiveView Zoom LV时放大比例,PLAY键选择Play:1. SET+MainDial(play)2. Cropmarks3. After taking a pic 已使用的照片4. Zoom in PLAY mode 缩放模式5. Quick Erase 快速删除Config:1. Config AutoSave 参数自动保存2. Save config now 保存参数3. Delete config file 删除设置文件4. DISP profiles 设置文件地址设置Debug: 此功能调试相机用,非特殊情况严禁使用!Power: 电源1. Dim display 显示较暗时2. Turn off LCD and LV 关闭LCD和LV模式时3. Turn off GlobalDraw4. Save power when REC 当录制时保存电源信息Help: 帮助文件
2016年08月17日
23,502 阅读
2 评论
68 点赞
2016-06-23
《The Secret 秘密》朗达·拜恩 吸引力法则
{bilibili bvid="BV1ts411a7H2" page=""/}
2016年06月23日
2,154 阅读
0 评论
0 点赞
1
...
11
12