PHP基础打印函数简述echoprintprint_rvar_dump区别echo输出一个或多个字符串,无返回值print只支持一个参数,总是返回1print_r显示一个变量的信息,有返回值var_dump打印一个或多个表达式的结构信息,包括表达式的类型和值,无返回值效果,但是自增NULL的结果是1`//问题1:写出输出$a=5;$b=1;如果($a=3||$b=3){$a++;$b++;回声$a。"\n";//1回显$b."\n";//2}//问题2$x=trueandfalse;变量转储($x);//bool(true)//问题3$z=2;$x=$z+$z+$z=3;回声$x;//7请在表格右侧写下每行代码执行后各变量的值$a=1;$b=1;$c=1;$d=1;$e=1;$a$b$c$d$e$b=&$a;11111$b="6$b";6161111$c=$e=(++$b);626262162$d=($c>$b)?($a+=10):($b--);6161626262$e=内爆(',',[$e,$c]);6161626262,类型转换十六进制转换echo(int)((0.1+0.7)*10);//输出7var_dump(0123==123);//bool(false)var_dump(0123==83);//bool(true)var_dump('0123'==123);//bool(true)var_dump('0123'===123);//bool(false)引用书面测试参考//问题1$arr=['a','b','c'];foreach($arras&$v){echo$v."\n";//abc}foreach($arras$v){回声$v。"\n";//abb}//问题2$data=['a','b','c','d'];foreach($dataas$key=>$value){$value=&$data[$key];}print_r($data);//bcdd递归,静态变量求法:1,1,2,3,5,8,13,21...,用递归实现求第n位//递归函数foo($n){if($n==1||$n==2){返回1;}returnfoo($n-1)+foo($n-2);}//如何优化函数foo($n){static$result=[1=>1,2=>1];如果(isset($result[$n]))返回$result[$n];return$result[$n]=foo($n-2)+foo($n-1);}file递归循环子目录和目录中的文件并输出functionshowDir($path){if(!is_dir($path)))返回假;$path=rtrim($path,'/');$arr=glob($path.'/*');foreach($arras$id=>$v){if(is_dir($v))$arr[$id]=[$v=>showDir($v)];}return$arr;}使用多个函数实现文件扩展functiongetExtension(){returnpathinfo('./a.php',PATHINFO_EXTENSION);}Session和Cookiecookie以及session的原理和区别PHP7新特性从PHP5.6.x到PHP7.0.x标量类型声明、返回值类型声明null合并运算符(??)、宇宙飞船运算符(<=>)通过define()定义匿名类的常量数组——通过n支持ew类实例化匿名类...从PHP7.0.x到PHP7.1.x从PHP7.1.x到PHP7.2.xnewstatic()和newself()之间面向对象的区别如何获取默认属性aclass实现迭代器和迭代覆盖父类保护方法的神奇方法有哪些自动加载类的限制如何实现类的自动加载php';如果(file_exists($file))require_once$file;});魔法方法__toString__invoke//实现以下函数(PHP7)echoa(1,3);//4echoa(3)(5);//8echoa(1,2)(3,4,5)(6);//21classcAdd{protected$n=0;公共函数__toString(){返回strval($this->n);}公共函数__invoke(...$args){$this->n+=array_sum($args);返回$这个;}}functionadd(){returncall_user_func_array(newcAdd(),func_get_args());}__set,__get,__isset,__unsetclassPropertyTest{private$data=array();公共函数__set($name,$value){$this->data[$name]=$value;}公共函数__get($name){if(array_key_exists($name,$this->data)){返回$this->data[$name];}返回空值;}//公共函数__isset($name)//{//返回isset($this->data[$name]);//}公共函数__unset($name){unset($this->data[$name]);}}$obj=newPropertyTest;$obj->test=1;var_dump($obj->test);//int(1)var_dump(isset($obj->test));//bool(false)unset($obj->a);var_dump(isset($obj->test));//bool(false)设计模式singletonfactoryMode观察者模式registrationmodeadaptermode如何理解MVCMVC设计模式(Modelmodel-Viewview-Controllercontroller)一种软件架构模式controller负责处理用户请求(包括数据模型调用和表示层的输出控制)模型负责处理具体的业务逻辑。视图负责显示结果,让用户深入了解MVC数据库。MySQL存储引擎。什么是MySQL存储引擎?MyISAN和InnoDB的区别?MySQL索引索引、唯一索引、主键索引、联合索引差异索引是一个特殊的文件,包含指向数据表中所有记录的引用指针。唯一索引的所有值都是唯一的,可以是单列也可以是多列主键索引是一种特殊的唯一索引。每个表只能有一个主键。联合索引是同时建立在多个字段上的索引。有命令。最左原则索引可以大大提高数据的查询速度,但是会减慢插入、删除和更新表的速度(空);开始;插入一个(id)值(null);开始;插入一个(id)值(null);犯罪;滚lback;rollback;分布式事务最终一致性SQL//更新b表的某个字段到a表,a.bid=b.idupdatea,bseta.name=b.namewherea.bid=b.id;//查询redis中工资最高的前三名员工。Redis的数据类型有:String、Hash、List、Set、SortedSet。如何提高缓存命中率参考可以通过缓存预加载(预热)、增加存储容量、调整缓存粒度、优化缓存更新/过期策略等方式来提高redis缓存命中率、缓存击穿和缓存雪崩redis一致性hashredis和memcache有什么区别,优缺点理论知识HTTP协议HTTP状态码//2xxsuccess200(成功)服务器已经成功处理了请求通常这意味着服务器提供了请求的网页。//3xxredirection300(多选)服务器可以对请求进行各种操作。服务器可以根据请求者(用户代理)选择一个操作,或者提供一个操作列表供请求者选择。301(永久移动)请求的网页已永久移动到新位置。当服务器返回此响应(响应GET或HEAD请求)时,它会自动将请求者转发到新位置。302(临时移动)服务器当前响应来自不同位置的网页的请求,但请求者应继续使用原来的位置进行以后的请求。303(查看其他位置)当请求者应对不同位置使用单独的GET请求来检索响应时,服务器返回此代码。304(NotModified)请求的页面自上次请求后未被修改。服务器返回此响应时,不返回任何网页内容。305(UsingProxy)请求者只能使用代理访问请求的网页。如果服务器返回这个响应,也表明请求者应该使用代理。307(临时重定向)服务器当前正在响应来自不同位置的网页的请求,但是请求者应该继续使用原来的位置进行以后的请求。//4xxRequestError400(BadRequest)服务器不理解请求的语法。401(未授权)请求需要身份验证。服务器可能会为需要登录的网页返回此响应。403(Forbidden)服务器拒绝了请求。404(NotFound)服务器找不到请求的网页。405(MethodForbidden)请求中指定的方法被禁用。406(NotAccepted)无法用请求的内容属性响应请求的网页。407(ProxyAuthorizationRequired)此状态码类似于401(Unauthorized),但指定请求者应被授权使用代理。408(RequestTimedOut)服务器在等待请求时超时。409(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。410(Deleted)如果请求的资源已被永久删除,服务器返回此响应。411(需要有效长度)服务器不接受没有有效内容长度标头字段的请求。412(Preconditionnotmet)服务器不满足请求者在请求中设置的前提条件之一。413(Therequestentityistoolarge)服务器无法处理请求,因为请求实体太大,超出了服务器的处理能力。414(TherequestedURIistoolong)请求的URI(通常是网址)太长,服务器无法处理。415(UnsupportedMediaType)请求的页面不支持请求的格式。416(Requestedrangedoesnotmeetrequirements)如果页面不能提供请求的范围,服务器返回这个状态码。417(Expectationnotmet)服务器不符合“Expectations”请求头字段。//5xx500(InternalServerError)服务器遇到错误,无法完成请求。501(notyetimplemented)服务器无法完成请求。例如,当服务器无法识别请求方法时,可能会返回此代码。502(错误网关)作为网关或代理的服务器从上游服务器收到无效响应。503(ServiceUnavailable)服务器当前不可用(由于超载或停机维护)。通常,这只是一个临时状态。504(GatewayTimeout)服务器正在充当网关或代理,但没有及时收到上游服务器的请求。505(HTTPVersionUnsupported)服务器不支持请求中使用的HTTP协议版本。cgiphp-cgifast-cgiphp-fpmCGI:web服务器和web应用程序之间进行数据交换的协议PHP-CGI:PHP(web应用程序)向web服务器提供的CGI协议的接口程序FastCGI:同CGI是一个通信协议,但它比CGI更高效。PHP-FPM:是PHP(Web应用程序)提供给Web服务器的FastCGI协议的接口程序,同时也提供了相对智能的任务管理。.
