我已经用

PHP编写了半年多的时间,虽然我还远没有成为一名专家,但我可以很容易地解决问题,并根据我的需要编写脚本.我来自面向对象的背景,这似乎是PHP在其默认库中使用的很少(如果有的话).

我使用或创建的大多数外部库都使用面向对象的设计,而默认设置似乎使用下一个示例.我将使用文件/写入阅读过程作为示例:

$file_path = "/path/to/file.txt";

$file_handle = fopen($file_path, "w+");

$content = fread($file_handle, filesize($file_path));

fclose($file_handle);

现在对我而言,使用看起来像这样的设计会更有意义:

$file_handle = new FileStream("/path/to/file.txt");

$content = $file_handle->read();

$file_handle->close();

现在我很确定这背后会有一个明确的推理,因为同样的想法适用于字符串,数组,cURL,MySQL查询等.我很想知道它是什么.

因此,如果最好用句柄或资源作为第一个参数来编写不同的函数,例如

object_method($handle, $value);

那么为什么大多数流行的(外部)PHP库更喜欢使用:

$object->method($value);

在编写自己的库和应用程序时,我应该使用哪个?

php 不喜欢用对象,为什么PHP不在其默认库中使用对象?相关推荐

  1. Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法

    Day09新手小白学python 第九节 Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法 目录 Day09新手小白学python 前言 一.面向对象介绍 二 ...

  2. Android开源项目及库整理总结 字数10731 阅读2704 评论2 喜欢85 自己总结的Android开源项目及库。 github排名https://github.com/trending,

    Android开源项目及库整理总结 字数10731 阅读2704 评论2 喜欢85 自己总结的Android开源项目及库. github排名https://github.com/trending, g ...

  3. 将选定的文本对象左对齐、右对齐或对中

    ;; ;;程序名称:对象水平对齐程序 ;;执行命令:TXTAL ;;程序功能:将选定的对象左对齐.右对齐或对中. ;; (defun c:TXTAL(/ selobjs oldcmdecho) ;定义 ...

  4. python中对象和变量的关系_浅析python中的类变量和对象变量

    刚学python,学到了有关于类和对象的地方.对一个概念有点模糊,后来通过实践编码找到一定规律 在python中 class test(object): id=2 name='tt' list=['t ...

  5. python默认参数 可变对象_当心Python函数可变默认参数(list,set,dict…)的陷阱

    绝大多数情况下,Python是一个干净具有一致性的语言.然而,有些少数情况会让初学者感到困惑.其中有些情况是有意识的但会成为潜在的莫名其妙,而有些可以说是语言赘肉.下面我们看看使用可变默认参数(Mut ...

  6. kotlin将对象转换为map_在 Kotlin 的 data class 中使用 MapStruct

    原文:https://zhuanlan.zhihu.com/p/208525542 一. data class 的 copy() 为浅拷贝 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对 ...

  7. java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法...

    字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池.如果字符串已经存在池中,就 ...

  8. Express 工具库中的 Application 对象

    var express = require('express') var app = express()app.get('/', function (req, res) {res.send('hell ...

  9. fritz 使用手册_Fritz对象检测指南:使用机器学习在Android中构建宠物监控应用

    fritz 使用手册 by Eric Hsiao 萧敬轩 Fritz对象检测指南:使用机器学习在Android中构建宠物监控应用 (A guide to Object Detection with F ...

最新文章

  1. Jenkins一键上线Java项目
  2. 人大经济论坛:统计学的一些经典教材
  3. QT的QItemSelection类的使用
  4. python中def _init_是什么意思_详细解读Python中的__init__()方法
  5. 免费的.NET混淆和反编译工具
  6. JavaScript高级程序设计学习(四)之引用类型(续)
  7. 重磅!谷歌大脑提出EfficientNet平衡模型扩展三个维度,取得精度-效率的最大化!...
  8. net空间一次购买终身使用_net域名与org域名哪个投资价值更高?
  9. 定时器时间动态变化(变速)
  10. 6.表单提交,input键盘变搜索,有关自定义属性input操作
  11. Android开源项目推荐之「网络请求哪家强」
  12. 获取json格式的内容数据时,使用的方法避免空指针
  13. 菲尔·席勒(Phil Schiller)卸任苹果全球营销高级副总裁,升任苹果研究员
  14. Python3.6爬取前程无忧
  15. linux oracle 常用操作
  16. newt.h:没有那个文件或目录
  17. vue2.0 axios 登录post请求自动读取Set-Cookie设置
  18. Kotlin (Java) 获取 mysql 数据库的所有表,表的所有字段,注释,字段类型
  19. Spark算子实战Java版,学到了
  20. ElasticSearch的搭建和报错处理

热门文章

  1. Dataset、IterableDataset 读取大数据的思路
  2. 【Java】Collection集合和泛型
  3. SpringBoot:如何处理SprintBoot提示Whitelabel Error Page以及了解原因?
  4. [COCI2017-2018#1] Plahte
  5. libevent: linux安装libevent
  6. 使用HTML5的Canvas画布来剪裁用户头像
  7. Cassandra集群配置
  8. 【Q】【poj 1144】【poj 1523】
  9. linux的系统移植——交叉编译工具集
  10. MFC关键技术-消息映射机制