首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP面试题集锦

用例子说明,以 Laravel 框架中的控制器作为说明 ①final修饰的类方法不可被子类重写; ②PHP是否重写父类方法只会根据方法名是否一致判断(5.3以后重写父类方法参数个数必须一致); ③重写时访问级别只可以等于或者宽松于父类...注意,复合数据类型对象的数据结构可以被解构为原始数据类型。 PHP处理字符串的常用函数?...按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点: 按值传递时,php必须复制值。...特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 按引用传递则不需要复制值,对于性能提高很有好处。 PHP操作目录(文件夹)的常用函数?...特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。 函数内部 static 和 global 关键字的作用?

6.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel5.3之Session源码解析(下)

    实际上,在Laravel5.3中关闭session主要包括两个过程:保存当前URL到session介质中;在Response Header中存入cookie。...其中,Laravel5.3把垃圾回收提前到了中间件的前置操作,中篇有聊到。OK,学习下关闭session的源码吧先。...开发环境:Laravel5.3 + PHP7 关闭Session 首先看下\Illuminate\Session\Middleware\StartSession::class中间件源码的handle()...,则在Store构造函数中使用setId()设置$id值 //看下Store::setId()源码就知道id是随机生成的长度为40的字符串 Str::random(40) = $session->getId...'session',主要看下响应头是不是设置了配置的cookie值: 看下响应头设置了'laravel_session' cookie,并且'path','domain'是刚刚在session.php

    1.5K21

    3分钟短文 | Laravel 内3种数据校验的写法,你喜欢哪一个?

    对于后端程序,必须对输入的内容进行有效性过滤。 ? 这就是本文的重点,说一说laravel中输入请求的校验。...学习时间 假设请求Request内有一个 names 字段,传送的是一个数组,对于数组,我们应该如何校验呢?其实需要两步,第一步校验names字段本身必须是数组,其次校验数组的元素规则。...接着使用星号匹配数组内元素,要求都是string字符串,且不得重复 distinct,且每个字符串长度最小为3。...laravel 5.5 以后的版本,你无需手动实例化 Validaor 对象,可以在 Request 对象直接调用 validate 方法实现。...自定义验证 laravel内你也可以自定义验证规则,使用 artisan 命令新建一个验证类: php artisan make:request SomeRequest

    1.3K20

    Laravel 集合 Collection

    也就是说,创建一个集合就这么简单: $collection = collect(['php', 'redis', 'laravel']); 默认情况下, EIoquent查询的结果返回的内容都是 Collection...#如果集合包含数组或对象,你应该传入你希望连接的属性的键,以及你希#望放在值之间用来「拼接」的字符串 #集合包含简单的字符串或数值,只需要传入「拼接」用的字符串作为该方法的唯一参数即可 collect...请参阅 PHP 文档的 usort,这是集合的 sort 方法在底层所调用的。 如果要对嵌套数组或对象的集合进行排序,参考 sortBy 和 sortByDesc 方法。...如果你想获取原数组,就改用 all() 方法。 #68.toJson方法,将集合转换成 JSON 字符串。...#77.whereIn方法,通过给定的键值数组来过滤集合。

    5.7K20

    3分钟短文 | Laravel 灵活地获取当前请求的路由地址

    学习时间 在 Laravel 4 中你可以使用系统提供的 Route 对象,直接访问其方法实现: Route::currentRouteName(); 虽然laravel做了很多努力向下兼容,但是随着PHP...首先我们仍然可以通过 Route 对象的方法访问,代码写起来像下面这样: Route::getCurrentRoute()->getPath(); 因为Route对象属于请求阶段,而框架将其关联到了 Request...对象上,所以也可以下面这样链式调用: Request::route()->getName(); 在 Laravel 5.1 内这样写: use Illuminate\Support\Facades\Route...,则使用 $url = $request->url(); 如果要筛选特定字符串匹配的路由地址,可以使用 is 方法进行匹配验证: if ($request->is('admin/*')) { } 星号是通配符...Laravel 5.3 以后的框架,获取方法统一下来了,比如下面这样: $route = Route::current();$name = Route::currentRouteName();$action

    1.3K20

    Laravel 5.3之 Query Builder 源码解析(中)

    版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...connection; } protected function getHostDsn(array $config) { // 使用extract()函数来读取一个关联数组...并且,在$bindings[]属性中把where过滤器与值相互绑定存储,如果有多个where过滤器,就类似这样绑定,['where' => [1, 'laravel', ...], ...]。...版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...并且,在$bindings[]属性中把where过滤器与值相互绑定存储,如果有多个where过滤器,就类似这样绑定,['where' => [1, 'laravel', ...], ...]。

    3.5K31

    爬虫+反爬虫+js代码混淆

    PHP中传引用与传值的区别? 按值传递:函数内对值的内容改变对函数外部无影响 引用传递:函数内对值的内容改变在函数外部也会做出相应修改 MYSQL优化方案有哪些?...final修饰的类方法不可被子类重写 5.3以后方法参数个数必须一致 重写时访问级别只可以等于或者宽松于当前重写方法的访问级别 什么是CGI? 什么是FastCGI?...不相信任何输入,过滤输入。...服务提供者是所有Laravel应用程序引导启动的中心,Laravel的核心服务器、注册服务、绑定服务、监听器、中间件、路由注册以及我们应用程序都是由服务提供者引导启动的。 IOC容器是什么?...此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。 Contract 是什么? Contract(契约)是 Laravel 定义框架提供的核心服务的接口。

    10.6K30

    【Laravel系列6.4】管道过滤器

    管道过滤器 通过之前的三篇文章,我们已经学习完了服务容器相关的内容,可以说,服务容器就是整个 Laravel 框架的灵魂,从启动的第一步开始就是创建容器并且加载所有的服务对象。...如果你跟过我的 PHP 设计模式系列的话,那么 责任链模式 很明显就是管道模式在 面向对象 语言中的应用呀。 管道模式一般是和过滤器一起使用的,什么是过滤器呢?...大家其实很快就能发现,在 Laravel 框架中,我们的中间件就是一个个的过滤器。而我们要处理的数据,就是那个 Request 请求对象。...之前的 bootstrap() 过程中,我们已经将所有的 app/Http/Kernel.php 中注册的中间件绑定注册到了服务容器中。因此,这个 pipes 数组中,就是我们所有的中间件信息。..."end"; }); // $【测试内容看看替换Email:zyblog#zyblog.ddd】$end1630978948 }); 在这段测试代码中,我们对 pipes 数组使用了类字符串

    4.1K20

    深入浅出学习后端开发(PHP篇)

    PHP Ver. <=4 一般PHP4只限于某些公司和项目的历史遗留问题,大部分都已经在使用PHP5.3 or 5.6版本等....PHP Ver. 5.3&5.4&5.6 其中PHP在5.1版本后完全支持了面向对象的特性,以及PDO数据库抽象层. 其中5.6版本相对于框架及扩展,运行稳定....针对工作方面的应用,首先进行的开发和操作,各种主流框架Laravel和ThinkPHP的学习.高级应用技术等....PHP学习路线 基础路线 环境搭建 HTTP协议 基本语法 基本数据类型 类型转换 变量 常量 字符串 数组 宏定义 传值 代码重用 函数 运算符 流程控制 文件加载...错误处理 会话控制 PHP模板引擎Smarty MVC模式 上传文件 网络和协议函数 国际化与本地化 进阶路线 可维护代码 调试和日志 用户身份验证和个性化 PHP框架Laravel

    1.3K120

    Laravel框架关键技术解析

    “laravel/installer=~1.1” 命令2:composer create-project laravel/laravel —prefer-dist 三、Laravel框架中常用的PHP...,在实例化对象时,static会根据运行时调用的类来决定实例化对象,而self是根据所在位置的类来决定实例化对象 4.Laravel示例:Illuminate\Database\Eloquent\Model.php...可以通过as操作符改变名称来引入 使用as语法可以用来调整方法的访问控制 trait抽象方法使类中必须实现这个方法 trait中可以用静态方法和静态变量 trait也可以定义属性 2.简化的三元运算符: PHP5.3...,在使用服务容器进行解析时,如果发现这个服务在延时服务数组中,则会注册 D.响应的发送与程序终止 八、服务容器与服务提供者 A.服务容器 1.Laravel中服务容器相当于大脑,服务提供者相当于神经系统...中对于响应生成的三种形式 只生成响应主体内容部分 生成响应的首部和主体部分 生成重定向的响应,即只包含响应的重定向首部 2.生成响应的主体内容:return “字符串”或return view(‘xxx

    12K20

    初中级PHP面试基础汇总

    方法 – 在某个方法或输出之前执行或之后执行,用于修饰 迭代器模式 提供一个方法顺序访问一个聚合对象中各个元素,在PHP中将继承 Iterator 类 – yield POST和GET有什么区别 GET...PHP中传引用与传值的区别? 按值传递:函数内对值的内容改变对函数外部无影响 引用传递:函数内对值的内容改变在函数外部也会做出相应修改 MYSQL优化方案有哪些?...final修饰的类方法不可被子类重写 5.3以后方法参数个数必须一致 重写时访问级别只可以等于或者宽松于当前重写方法的访问级别 什么是CGI? 什么是FastCGI?...不相信任何输入,过滤输入。...此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。 Contract 是什么? Contract(契约)是 Laravel 定义框架提供的核心服务的接口。

    1.3K10

    Laravel 5.0 之 Middleware (Filter-Style)

    . ---- 如果你有阅读我之前的 Laravel 5.0 系列文章,你可能已经注意到路由过滤器(route filters)的变化:它们先是移到了单独的目录和类结构,然后就莫名其妙地消失了。...你可能还留意到在原本应该是路由过滤器的地方,变成了对 Middleware 的引用。 实际上给 Laravel 应用添加自定义的 Middleware 在以前的版本中就有了。...提示:过滤器在 Laravel 核心代码中依然存在,所以你依然可以使用。但是在需要对路由进行修饰时,更推荐采用的是 middleware. Middleware 是什么?...还记得之前那个荒谬的“阻止奇数端口请求的 ValidatesWhenResolved 对象”的例子吗?...这两个属性都是 middleware 为元素的数组。

    2.1K40

    初中级 PHP 面试基础汇总

    观察者模式 一个对象通过添加一个方法使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。例如实现实现消息推送——将所有类的实例化注册到一个数组,通过循环批量执行类。...PHP中传引用与传值的区别? 按值传递:函数内对值的内容改变对函数外部无影响。 引用传递:函数内对值的内容改变在函数外部也会做出相应修改。 MYSQL优化方案有哪些?...防范:不相信任何输入,过滤输入。...<=1) return $arr; //数组元素有多个,则定义两个空数组 $left = $right = array(); //使用for循环进行遍历,把第一个元素当做比较的对象...此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。 Contract 是什么? Contract(契约)是 Laravel 定义框架提供的核心服务的接口。

    1.1K20

    Laravel5.3之PHP反射(Reflection) (上)

    说明:Laravel中经常使用PHP的反射特性来设计代码,本文主要学习PHP的反射特性,来提高写代码时的设计质量。...开发环境: Laravel5.3 + PHP7 Introspection Functions Introspection Functions是用来操作object class的一些函数,PHP提供了大量的...中只有一处使用了class_alias(),用来给config/app.php中$aliases[ ]注册别名,可看下Laravel5.3之bootstrap源码解析,看下Laravel中如何使用的:...} get_object_vars() get_object_vars()只会读取对象的public属性组成一个数组,类似于get_class_vars(), get_class_methods...,和is_subclass_of()有点类似,只是is_a()还可以判定是不是该类的对象,is_a()类似于instanceof操作符,Laravel中还没用到这个方法,这里写个PHPUnit测试,爆绿灯

    2.1K41
    领券