基础概念扫盲篇【记录】(持续更新)

2024-05-01 23:18

本文主要是介绍基础概念扫盲篇【记录】(持续更新),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP报错等级

线上配置:error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATE
值 常量 说明
1 E_ERROR 报告导致脚本终止运行的致命错误
2 E_WARNING 报告运行时的警告类错误(脚本不会终止运行)
4 E_PARSE 报告编译时的语法解析错误
8 E_NOTICE 报告通知类错误,常见,脚本可能会产生错误(如:使用了未定义的变量)
32767 E_ALL 报告所有的可能出现的错误(不同的PHP版本,常量E_ALL的值也可能不同)
E_STRICT 其不包含在 E_ALL 之中,例如它会警告你使用了将被废弃的函数。
E_DEPRECATED 意思是“不推荐”,与E_STRICT类似

PHP对大小写敏感问题

  1. 大小写区分问题
    abc=abcd;echo a b c = ‘ a b c d ′ ; e c h o abc; //输出 ‘abcd’
    echo $aBc; //无输出
    函数名、方法名、类名不区分大小写,但最好按规则来

  2. 大小写命名问题

    类名默认单词字母大写,ShwoList.class.php
    方法: showList()
    变量: $showList;
    常量名默认区分大小写,通常都写为大写
    魔术常量不区分大小写,推荐大写

语法认知:

赋值时的渐变写法:
  • $bool && $result =”赋值”;
    【等同于】=> if( $bool ){ $result =”赋值” } ;
  • $result=$bool?”赋值1”:”赋值2”;
    【等同于】=> if( \$bool ){ \$result =”赋值1”}else{ \$result =”赋值2”} ;

mb打头的函数

由来:都是PHP5最新添加的,
优点:处理速度能更快,功能更强大一些
选择:没有非说得用mb函数的说法,合适的就是最好的
举例:比如说 mb_substr用来截取中文时不会把一个汉字截断的现象substr更适合截取英文内容
配置:  但php默认是不支持的,需要在配置中解开;extension=php_mbstring.dll     
对比:mt_rand  mt_srand

php的几个全局变量

$_SESSION
$_COOKIE
$_POST
$_GET
$_REQUEST  $_GET,$_POST 和 $_COOKIE 的数组。
$_SERVER
$_FILES
$_ENV

PHP常量的区别CONST DEFINE

(1).const可在类中使用,define不能。局部和全局的区别吧
(2).const不能在条件语句中定义常量。
(3).CONST 比define加载快
(4). define可以采用表达式作为名称。

const存放在数据段中,与static相同 访问用 类名:: self::

php的路径解释

一。物理路径,它就是指硬盘上文件的路径,比如下面的文件位置表示方法:
d:\wwwroot\html\a.html
二。相对路径
链接到上级目录中的文件
三。绝对路径,它就是带有网址的路径。比如你有一个域名www.test.com,其域名指向 d:\wwwroot,
链接到a.html
四。根目录,去掉绝对路径前面的域名就是根目录,所以它可以理解为是网站的最上层目录。它的表示方法如下:
链接到a.html

each与list的用法(PHP学习)

//each
//返回目标数组中第一个【值/下标】,并且【下标】向后移动一位
for(; tmp=each( t m p = e a c h ( arr);){
echo tmp[0], , t m p [ 0 ] , ′ ′ , tmp[1],’
’;
}
reset( arr);//list// list( a r r ) ; / / l i s t / / l i s t ( a, b, b , c) 规定: a= a = arr[0], b= b = arr[1], c= c = arr[2]…… [以此类推]
arr=array(1,2,3,4);for(;list( a r r = a r r a y ( 1 , 2 , 3 , 4 ) ; f o r ( ; l i s t ( k, v)=each( v ) = e a c h ( arr);){
echo k, , k , ′ ′ , v,’
’;
}

each把索引数组的下标和值赋值给一个数组 tmp01list( t m p 有 【 0 】 【 1 】 l i s t ( a, b) b ) a= tmp[0], t m p [ 0 ] , b=$tmp[1]
所以list与each连用,可以把数组中的下标和值分别输出,但要注意 reset 数组的指针

提高使用效率

缓存技术,把一定时间没变过的放入缓存,减少访问系统开销SQL缓存:简历数据表,启动mysql数据 insert select update文件缓存:fopen,fwrite,fread内存缓存:安装缓存软件SQL预处理技术

安全:

URL解析模式3,使使用者不知道文档结构
SQL事务模式:

- Smarty

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

HTML,XML,XHTML

HTML和XML:他们两个都是标记语言(ML),一个是超文本置标语言,一个是可扩展置标语言。
他们的不同之处:
1可扩展性:HTML不具备扩展性,而XML是原标记语言,可以用于定义新的标记语言。
2侧重点: HTML侧重于如何表现信息,而XML是侧重于如何结构化的描述信息。
3语法要求: HTML不要求标记的嵌套,配对等,不要求标记间具有一定的顺序,而XML则是严格要求嵌套,配对,遵循DTD的树形结构。
4可读性和维护性:HTML难于阅读维护,而XML结构清晰,便于阅读维护
5数据和显示关系:HTML的内容描述和显示整合唯一,而XML则是相分离的
最后一点就是他们的编辑浏览工具了,HTML有一堆的编辑浏览工具,而XML尚不成熟。
至于XHTML,是介于HTML和XML之间的标准,它是让HTML符合XML语法规范的一种规定。不过现在的浏览器对XHTML的支持并不是很好。

Javascript,jQuery, Ajax

JavaScript包括Ajax
jQuery是一个JavaScript轻量级框架
学习Ajax很简单,前提是你会JavaScript基础,但是真正的运用好Ajax不简单,要考虑很多问题,比如怎么设置浏览器导航按钮,怎么防止请求冲突,怎么提高安全,怎么平稳过渡等等的数多问题
推荐书籍
《JavaScript基础教程》第六版
《JavaScript高级程序设计》
《JavaScript DOM高级程序设计》
《Ajax实战》
《Ajax高级程序设计》
《jQuery基础教程》第二版
《jQuery实战》

discuz 与phpwind

在我们想搭建论坛的时候,我们都会在论坛程序的选择上苦思冥想,难以下结论,到底选择那款系统,目前ASP论坛已经面临被淘汰的局面了.

PHP论坛是目前最盛行的,PHP论坛程序中当属Disduz和Phpwind最为出众,的确这两个系统都很优秀,很难说要选择哪一个,接下来,我们就为大家简单分析这两个论坛程序。

首先我们要说一下就是Discuz,目前使用最多的PHP论坛系统,是由北京康盛创想有限公司开发的一款PHP论坛代码,该产品已经被广泛应用于各大论坛,而且康盛公司旗下产品还有建站系统,博客系统,空间系统,是一款整合性非常强的系统,DISCUZ系统具有很强的负载能力,可以在繁忙的服务器环境下运行快速稳定的论坛,很大程度上节约了企业的成本,Discuz的打开速度明显要快,该产品附恶化国际化标准产品构架,具有很强的安全性和攻击防护,系统更新和补丁也推出很频繁,是国内首屈一指的PHP论坛系统。

接下来我们说一下Phpwind论坛,杭州德天信息技术有限公司的一款优秀论坛系统,是Discuz论坛强有力的挑战者,各项功能都不亚于discuz系统,在打开速度上比DZ更具优势,快捷、稳定、高效、成熟、稳定是这款论坛的特点,由于Phpwind论坛出道还比较晚,各项性能指标还不成熟,再加上互联网竞争日趋白热化,寻求强有力的支撑是一个公司发展的根本,去年,Phpwind被马云所在的阿里巴巴公司收购,这个土生土长的杭州互联网企业,再次与大公司接轨,发展前景自然不在话下。

要说这两款论坛,各有优缺点,我们使用的过程中发现,Discuz的伪静态也比Phpwind好的多,最起码简单明了,符合搜索引擎的标准,收录相对会更多一些,而Phpwind的伪静态比较长,这点不利于搜索引擎优化,打开速度上Phpwind稍占上风,其它的就是功能使用上了,Discuz后台操作比较简单,功能强大,非常适合新老站长使用,而Phpwind论坛的后台设计比较繁琐,相对操作比较复杂,但是功能不亚于discuz。 在搜索引擎的表现上来看,搜索引擎还是偏爱于discuz论坛系统,不管是在排名还是在收录上,discuz都占据了很大的优势。

memcache

  memcache是一套分布式的**高速缓存系统**,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以**提升网站的访问速度**,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。**开源**MemCache的工作流程如下:
  • 先检查客户端的请求数据是否在memcache中,如有,直接把请求数据返回,不再对数据库进行任何操作;

  • 每次更新数据库的同时更新memcached中的数据,保证一致性;

  • 当分配给memcached内存空间用完之后,会使用LRU(Least Recently
    Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。

  • Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

总结:缓存在内存,减少数据库访问次数,提升访问速度。

Zend Optimizer

Zend Optimizer(以下简称ZO)用优化代码的方法来提高php应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。
我们在使用php的时候,会发现很多的php开源系统都是基于Zend Optimizer上的,所以我们需要先安装Zend Optimizer,这时候我们发现在php5.3之后是没有Zend Optimizer,但是有新的Zend Guard Loader,那我们就安装Zend Guard Loader就好了。

这篇关于基础概念扫盲篇【记录】(持续更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952909

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中