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

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

源码中好多个地方使用到class_exists()方法来判断指定类是否存在,如\Illuminate\Database\Connection::isDoctrineAvailable()的源码:...中register是否存在,和bootProvider()中检查service provider中boot()方法是否存在: public function register($provider, $options...中只有一处使用了class_alias(),用来给config/app.php中$aliases[ ]注册别名,可看下Laravel5.3之bootstrap源码解析,看下Laravel中如何使用的:...,类似于get_class_methods(),若属性没有默认值就为null,目前Laravel中还未使用,看下PHPUnit测试: public function testGetClassVars...(),且属性没有默认值就是null,Laravel中只有一处使用到\Illuminate\Mail\Jobs\HandleQueuedMessage::__sleep() :line 78,写个PHPUnit

2.1K41

NumPy学习笔记

,结果是数组中每个元素相加: 还可以做平方运算: dot方法是点乘,既a的行与b的列,每个元素相乘后再相加,得到的值就是新矩阵的一个元素: 除了用数组的dot做点乘,还可以将两个矩阵对象直接相乘...,结果与dot结果一致: 另外还要有逆矩阵、转置矩阵、矩阵转数组的成员变量需要注意: 爱因斯坦求和约定 这里不细说爱因斯坦求和约定本身,只聊聊NumPy对该约定的支持,主要是einsum方法的使用...dstack这三个方法将两个数组向上图的两本书一样做堆叠,要注意的是入参是元组: 这个图比较形象,二维数组在深度方向堆叠,形成了三维数组: concatenate函数也能实现堆叠功能: column_stack...:将每个一维数组作为一列,水平堆叠 row_stack:将每个一维数组作为一行,垂直堆叠 分割 与堆叠相对应的是分割:水平分割、垂直分割、深度分割 先来看水平分割hsplit,就像切竖着西瓜,西瓜在水平方向被分割成几段...: 垂直分割vsplit就像横着切西瓜,结果是西瓜在垂直方向被分割成几段: 以上的操作也可以共split方法辅以axis参数来实现: 深度分割,会在深度的方向切下,假设原有两个二维数组组成的三维数组

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

    Laravel 集合 Collection

    **而且,几乎所有的方法都会返回新的 Collection 实例,允许你在必要时保存集合的原始副本。 #1.all方法,该方法返回该集合表示的底层数组。...6S', 'brand' => 'Apple'], ['name' => 'Galaxy S7', 'brand' => 'Samsung'], ] */ #在这个例子里,调用 flatten 方法时不传入深度参数的话也会将嵌套数组转成一维的...序后的集合保留着原数组的键,所以在这个例子中我们使用 values 方法来把键重置为连续编号的索引。...请参阅 PHP 文档的 usort,这是集合的 sort 方法在底层所调用的。 如果要对嵌套数组或对象的集合进行排序,参考 sortBy 和 sortByDesc 方法。...安装 Laravel中的Collection使用Composer管理,所以我们可以在项目中使用composer安装到非Laravel项目中,比如我们新建一个collections目录,通过下面使用命令安装

    5.7K20

    Laravel 辅助函数

    array_add() 如果给定的键不在数组中,会把给定的键值对加到数组中.否则则不加入 array_divide() 函数返回两个数组,一个包含原本数组的键,另一个包含原本数组的值。...array_dot() 函数把多维数组扁平化成一维数组,并用”.”符号表示深度 array_except() 从数组当中移除指定键值对 array_fetch() 函数返回包含被选择的嵌套元素的扁平化数组...array_first() 函数返回数组中第一个通过给定的测试为真的元素 array_last() 函数返回数组中最后一个通过给定的测试为真的元素 array_flatten() 函数将会把多维数组扁平化成一维...array_forget() 函数将会用”.”符号从深度嵌套数组移除给定的键值对 array_get() 函数将会使用”.”符号从深度嵌套数组取回给定的值 array_only() 函数将会只从数组返回给定的键值对...array_pluck 函数将会从数组拉出给定键值对的清单 array_pull 函数将会从数组返回给定的键值对,并移除它 array_set 函数将会使用”.”符号在深度嵌套数组中指定值 array_sort

    1K100

    ESLint配置信息完整版

    : 2, 表示报错 ####配置信息(来自网络) “no-alert”: 0,//禁止使用alert confirm prompt “no-array-constructor”: 2,//禁止使用数组构造器...“no-nested-ternary”: 0,//禁止使用嵌套的三目运算 “no-new”: 1,//禁止在使用new构造一个实例后不赋值 “no-new-func”: 1,//禁止使用new Function...if(){} 中的{} “default-case”: 2,//switch语句最后必须有default “dot-location”: 0,//对象访问符的位置,换行的时候在行首还是行尾 “dot-notation...“lines-around-comment”: 0,//行前/行后备注 “max-depth”: [0, 4],//嵌套块深度 “max-len”: [0, 80, 4],//字符串最大长度 “max-nested-callbacks...”: [0, 2],//回调嵌套深度 “max-params”: [0, 3],//函数最多只能有3个参数 “max-statements”: [0, 10],//函数内最多有几个声明 “new-cap

    2.3K10

    CSS 预编译语言 Sass 快速入门教程

    1、CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量、函数、继承等机制,因此很容易写出大量没有逻辑、难以复用和扩展的代码,在日常开发使用中,如果没有完善的编码规范...中通常会使用 Sass 编写样式代码,Laravel 默认提供的样式代码也是 scss 结尾的,也是使用的 Sass 语言。...它允许你使用变量、嵌套规则、混合、导入等众多功能,并且完全兼容 CSS 语法。...这类编程语言,也不熟悉 Redis 中的数据结构,可以将 List 理解为 PHP 中未指定键名的索引数组,将 Map 理解为以字符串作为键名的关联数组): // 简单变量 $primary-color...目录下独立的 .scss 文件,另一个是 Vue 组件中的 中,我们在属性中设置 lang="scss" 表示这里面是 Sass 代码,需要 Laravel

    7.2K41

    JS对象那些事儿

    这包括数组,函数,构造函数和对象本身。 对象 从概念上讲,对象在所有编程语言中都是相同的。它们使用具有属性和方法的代码来表示真实世界。...JavaScript对象在创建方式上有所不同。不需要非得用class创建,并且可以使用字面量表示法声明。 对象创建 我们可以在JavaScript中以多种方式创建对象,让我们来看看都有哪些。 1....方法将键值对列表转换为对象。我们来看一个例子吧 ? 注意:创建对象的最佳方法是通过字面量表示法,因为它在源代码中占用的空间更少。...要更新属性,我们可以再次使用上述两种表示法。如果我们为已创建的属性添加值,则会更新这个属性的值。...此外,浅拷贝将复制顶级属性,但嵌套对象在原始(源)和副本(目标)之间共享。 浅拷贝的另一种方法是使用Object.assign()。我们来看看这个例子 ?

    2.4K10

    请你对Java中树的了解有多少?

    结点的层次: 规定根所在的层次为第1层,根的孩子在第二层,依次类推。 树的深度或高度: 树中结点最大的层数。 有序树: 指树中结点的各子树从左至右是有次序的,否则称为无序树。...(4)树的深度为3。 6.1.2 树的逻辑表示方法 树的常用表示方法有以下4 种: 树形图法、嵌套集合法、广义表表示法和凹入表示法。...2.嵌套集合法 嵌套集合法采用集合的包含关系表示树,如图6.5所示。 3.广义表表示法 广义表表示法以广义表的形式表示树,利用广义表的嵌套区间表示树的结构,如:A(B,C(E,F),D(G))。...双亲表示法存储如图6.7所示。 在常规指针表示法中,每一个节点是一个结构,包含两个域: 数据域和指针域。指针域指向该节点的双亲节点,没有双亲节点的指针域是空指针。...在仿真指针表示法中,每个节点是数组的一个元素,每个元素也包含数据域和指针域,但是指针域存放的是双亲节点所在的数组下标地址( 即仿真指针),没有双亲的节点指针域为-1。

    1.3K50

    Go语言action

    注释不能嵌套,并且必须紧贴分界符始止,就像这里表示的一样。 {{pipeline}} pipeline的值的默认文本表示会被拷贝到输出里。...action主要完成流程控制、循环、模版等操作.通过使用action可以在模版中完成简单逻辑处理(复杂逻辑处理应该在go中实现,传递给模版的数据应该是已经加工完的数据) 二. if 使用 if写在模版中和写在...if后面的表达式中如果包含逻辑控制符在模版中实际上是全局函数 and 函数返回它的第一个empty参数或者最后一个参数; 就是说"and x y"等价于"if x then y else...eq $n 123}} 123 {{else if eq $n 124}} 124 {{else if eq $n 125}} 125 {{else}} else {{end}} 在模版中也可以相互嵌套...range遍历数组或切片或map或channel时,在range内容中{{.}}表示获取迭代变量 {{range .}} {{.}}{{/* 此处dot为迭代变量 */}} {{

    50330

    HashMap & ConcurrentHashMap

    方法 将键值对,以新节点作为链表的头节点,在JDK 1.8 之后,采用尾插法!...首先先扩容,按照原来的顺序,然后再rehash,再添值 put方法:先进行hash()运算,获取hashcode值,(目的是尽量减少Hash碰撞)然后indexFor获得length-1&h 得出再数组中的位置...,不在构造方法里面(构造方法会判断初始容量、负载因子是否合法,不合法,强行转成2的指数次幂,保障分布均衡),使用Put的时候再初始化。...第一次put的时候,判断数组有没有初始化,如果没有直接初始化数组,然后去判断要插入的key,没有key,直接(putForNullKey)添加值,直接返回。...容量必须是2的指数倍数 扩容时都将容量增加1倍 初始时表为空,都是懒加载,在插入第一个键值对时初始化 键为null的hash值为0,都会放在哈希表的第一个桶中 不同点: 1.7是数组+链表,1.8则是数组

    94520

    ⭐️C# 零基础到进阶⭐️| 字典和列表 相互嵌套使用 的终极总结!

    : 添加:Dic.Add(key,value)给字典添加值 删除:Dic.Remove(key) 删除指定值 访问:Dictionary[key]表示key所对应的值 判断空:ContainsKey...{ Console.WriteLine(list[i]);//遍历打印链表的值 } 使用方法 添加:list.Add(key)给字典添加值...删除:list.Remove(key) 删除指定值 访问:list[key]表示key所对应的值 列表的小知识 ① 列表内部数据其实是使用数组进行存储的。...② 当列表的容量发生改变时,它会创建一个新的数组,使用Array.Copy()方法将就数组中的元素复制到新数组中。...总结 字典和列表 相互嵌套使用 的几种方式,包括实例讲解,应该没有被绕晕吧,这只是介绍了双层嵌套使用 更多层的嵌套使用方法类似,就一直套用就好了,遍历的时候多次循环使用就好啦! 今天你学废了吗!

    2.6K30

    eslint 效验规则

    三、常用规则列表: "no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 "no-bitwise"..."no-nested-ternary": 0,//禁止使用嵌套的三目运算 "no-new": 1,//禁止在使用new构造一个实例后不赋值 "no-new-func": 1,//禁止使用new Function...if(){} 中的{} "default-case": 2,//switch语句最后必须有default "dot-location": 0,//对象访问符的位置,换行的时候在行首还是行尾 "dot-notation..."lines-around-comment": 0,//行前/行后备注 "max-depth": [0, 4],//嵌套块深度 "max-len": [0, 80, 4],//字符串最大长度 "max-nested-callbacks...": [0, 2],//回调嵌套深度 "max-params": [0, 3],//函数最多只能有3个参数 "max-statements": [0, 10],//函数内最多有几个声明 "new-cap

    2.5K40

    Python-Numpy中array和matrix的用法

    Numpy 中不仅提供了 array 这个基本类型,还提供了支持矩阵操作的类 matrix,但是一般推荐使用 array:  很多 numpy 函数返回的是 array,不是 matrix 在 array...:形状为 1xN, Nx1,A[:,1] 返回的是二维 Nx1 矩阵 高维数组 array:支持大于2的维度 matrix:维度只能为2 属性 array:.T 表示转置 matrix:.H 表示复共轭转置...,.I 表示逆,.A 表示转化为 array 类型 构造函数 array:array 函数接受一个(嵌套)序列作为参数——array([[1,2,3],[4,5,6]]) matrix:matrix 函数额外支持字符串参数...v 在 dot(A,v) 被看成列向量,在 dot(v,A) 中被看成行向量,这样省去了转置的麻烦 [BAD!].../ 是逐元素操作 当然在实际使用中,二者的使用取决于具体情况。

    1.4K00

    Python必备基础:这些NumPy的神操作你都掌握了吗?

    利用random模块生成ndarray 在深度学习中,我们经常需要对一些变量进行初始化,适当的初始化能提高模型的性能。...] [ 3. 22. 13. 17.]] 03 矩阵操作 深度学习中经常涉及多维数组或矩阵的运算,正好NumPy模块提供了许多相关的计算方法,下面介绍一些常用的方法。...此外,功能比math模块中的函数更灵活。math模块的输入一般是标量,但NumPy中的函数可以是向量或矩阵,而利用向量或矩阵可以避免循环语句,这点在机器学习、深度学习中经常使用。...因此,深度学习算法中,一般都使用向量化矩阵运算。 06 广播机制 广播机制(Broadcasting)的功能是为了方便不同shape的数组(NumPy库的核心数据结构)进行数学运算。...广播提供了一种向量化数组操作的方法,以便在C中而不是在Python中进行循环,这通常会带来更高效的算法实现。广播的兼容原则为: 对齐尾部维度。 shape相等or其中shape元素中有一个为1。

    4.8K30

    Python数据分析之NumPy(运算篇)

    ,inner,outer dot : 对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称之为内积);对于二维数组,计算的是两个数组的矩阵乘积;对于多维数组,它的通用计算公式如下,即结果数组中的每个元素都是...:数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和 inner : 和dot乘积一样,对于两个一维数组,计算的是这两个数组对应下标元素的乘积和;对于多维数组,它计算的结果数组中的每个元素都是...-1.79515205 -0.88493701 -0.42676191 0.05635219 0.37449618 0.70150419 0.80712566 1.52654468] 二维数组也可以在某些维度上排序...广播规则 让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐 输出数组的shape是输入数组shape的各个轴上的最大值 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为...-3.32892881e-01] [ -1.37165175e+00 2.00000000e+00 -1.13509664e-01 2.00000000e+00]] np.where可以嵌套使用

    1.3K41

    跟我一起学Laravel-EloquentORM高级部分

    软删除功能实际上就是利用了全局作用域功能 实现一个全局作用域功能只需要定义一个实现Illuminate\Database\Eloquent\Scope接口的类,该接口只有一个方法apply,在该方法中增加查询需要的约束...,需要覆盖其boot方法,在该方法中增加addGlobalScope 方法 return $user->makeVisible('attribute')->toArray(); 为json追加值 有时需要在json中追加一些数据库中不存在的字段,使用下列方法...Mutators 在Eloquent模型中,Accessor和Mutator可以用来对模型的属性进行处理,比如我们希望存储到表中的密码字段要经过加密才行,我们可以使用Laravel的加密工具自动的对它进行加密...Accessors & Mutators accessors 要定义一个accessor,需要在模型中创建一个名称为getXxxAttribute的方法,其中的Xxx是驼峰命名法的字段名。

    1.3K40
    领券