草庐IT

BUAA_OO_U4_Summary

全部标签

php - 关于 PHP 中的 OO 和类的几个问题

我正在学习OO和类,我有几个关于PHP中的OO和类的问题据我了解,扩展另一个类的类仅意味着扩展另一个类的类可以访问它所扩展的类的变量/属性和函数/方法。这是正确的吗?我知道静态方法或属性基本上与类外的过程函数或变量相同,几乎可以在任何地方使用。这是正确的吗?Public表示任何类都可以访问它,Private表示只有封装在其中的类或从其所有者扩展的类才能访问和使用。这是正确的吗? 最佳答案 1)是的,没错。子类继承其父类的任何protected或public属性和方法。任何声明为private的东西都不能使用。2)这是真的。只要加载了

php - 用PHP学习OO编码,static != 表达式,但是PHP手册上说凡是有值的都是表达式,一头雾水

几天前我开始学习面向对象,我对过程编码还算可以,但显然这还不够,我想成为一个有很多经验和知识的精通编码器,所以首先要完全学习必须是OO,然后是我认为正确的设计模式。无论如何,有一件事我卡住了,我不太明白......静态变量...我知道静态变量不会丢失它的值,即使包含的函数已完成执行,并且如果再次执行相同的函数将保持它的值,等等。但我不明白的是,您现在究竟可以将什么分配给静态变量?关于stackoverflow状态的手册和无数问题您不能将表达式分配给静态变量。所以我阅读了PHP手册,以找出究竟什么才算是表达式?手册答案是(我引用):“在PHP中,您编写的几乎所有内容都是表达式。定义表达式

php - 在 OO PHP 中加载实例的有用性?

我被要求用PHP做一个项目并确保它是面向对象的。我做过OO,也做过PHP,但从来没有两者都做过。OOPHP(继承/多态性之外)的主要好处似乎是代码组织。没关系;我正在这样做。但是我遇到困难的地方是我是否真的应该为每个“对象”创建实例。对我来说(也许我在这里太天真了),网络应用程序就是发出非常短的、无状态的请求来更改或检索数据库中的记录。对象不能在请求之间持续存在。因此,从数据库加载数据、从该数据构造对象、进行小更新、将对象中的数据保存回数据库,然后丢弃对象感觉毫无意义。加载/保存代码似乎白做了很多工作。[澄清:浪费开发时间,而不是处理时间……不太关心开销]另一种方法是拥有一堆单例(或具

php - 是否有任何 PHP OO 文件 API?

我知道PHP包含许多用于处理文件和目录的内置函数。我可以读取、写入、删除,并且可以通过使用PHPfilesystemfunctions获取关于文件的几乎所有可能信息。这些函数的问题是它们都是过程性的。是否有任何PHPOO文件API?我怀疑是否有原生的,至少在 最佳答案 是的,yesthereis,它很漂亮。SplFileInfo和SplFileObject(这可能是您真正想要的)在5.1.2中都可用。虽然它们大多只是过程功能的包装器,但我发现它们总体上要好得多——如果仅仅是因为它们允许我在使用类型提示时传递东西,而且因为我不需要担心

php - OO PHP 保护的属性在 foreach 循环中不可用?

我有一个验证类,我想用它来检查我的应用程序中的所有值是否在允许的约束范围内。我正在将一个对象从另一个类(在本例中为用户)传递给验证类中的静态函数functionvalidate(){$errors=Validation::validate($this);}在验证类中,我创建了一个新对象,然后处理传递的参数对象的属性(或者至少这是我想做的)。functionvalidate($object){$validation=newValidation();print_r($object);print_r('');foreach($objectas$key=>$val){print_r($val)

php - 在 OO 上下文中建模更改

FormalsemanticsofanObject-orientedprogramminglanguageincludeencapsulatedstate.Isthereause-caseforencapsulatingapotentialchange,previoustothestatechange?AlthoughthefollowingexamplesareinPHP,pleasealsothinklanguage-agnosticinyouranswer.背景我有一个Client负责发送请求并从服务器检索响应的对象,它用于通过调用API来更改驻留在另一台服务器上的对象的状态。有

PHP OO - 我如何在 X 和许多 Y 之间建立类关系

所以我有2个类:我们称它们为Person和Car在实例化之前,我需要从我的Car类中的person对象访问一些属性。我是否只是按照以下顺序说一些事情:$car=newCar($person);如果是,那么我如何访问我的Car类中的那些对象属性?会不会是这样的:classCar{function__construct($person){$this->person=$person;}}如果不是,有什么方法可以实现? 最佳答案 我们在这里有些困惑。现实世界的OOP,考虑和比较:汽车给或由人购买:$person->addCar($car);

php - OO : Inheritance vs Service

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.6年前关闭。ImprovethisquestionClassA{publicfunction__construct(Foo$foo,Bar$bar,MyCustomType1$mct){//...}//...publicfunctiongetFooBarFunction(){$this->foo->aMethod();$this->bar->anotherMethod();//someotherexecutionhere}}Class

php - 可视化 OO PHP 代码

是否存在我可以指向我的PHP项目并且它可以查看所有文件(或仅我指定的文件)并根据对象和函数调用生成图表的东西?这将是验证我的设计是否真正被实现的好方法:)背景:我正在尝试使用OO原则构建一个PHP网站,虽然到目前为止,它正在运行,但我还有很长的路要走,而且复杂性已经失控。我的意思是,我基本上理解正在发生的事情,但是(我不认为我是一个人在这里)如果我可以立即可视化系统并查看流程以便我可以优化,删除不必要的东西并且当然,建立在基础之上。我可以坐下来用笔和纸画出来(我已经为零件做了)但是如果有一些程序可以生成图像,那就简单多了。而且我可以更频繁地这样做。谢谢:)

php - OO数据库类

我正在尝试通过在PHP中创建数据库类来更清晰地学习面向对象编程。这就是我现在拥有的。当我尝试使用$db->query();调用它时,我收到有关$mysqli是undefinedvariable的错误请解释如何定义变量$mysqli。query($sql);if(($results->num_rows)>0){echo'Wehave:'.$results->num_rows;}}}?>在另一个文件中,我正在实例化对象,然后调用这样的函数:require'phpDatabaseClass.php';define('DBhost','localhost');define('DBusernam