问题标签 [procedural-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
36643 浏览

php - 为什么带有 mysqli 的面向对象的 PHP 比过程方法更好?

直到最近,我一直在使用 mysql* 的程序方法。现在我想转向 mysqli 和面向对象的方法。许多在线资源和书籍指出,即使在 PHP 的情况下,OOP 也比程序性更好。在浏览了一些在线教程之后,我编写了一个连接数据库并选择一个值的小程序。我想知道为什么面向对象的方法更好?另外,这是编写 OO php 网页的正确方法吗?

面向对象的方法

程序方法

0 投票
4 回答
71 浏览

php - 我正在做一个 tut,但我无法理解这种语法

我通常编写 oop 代码,这可能是我从未见过这种编码方式的原因。我不明白下面多维数组中的语法,为什么[$obj->id]['label']不只是$obj['id']['label']]

0 投票
1 回答
2228 浏览

static-analysis - 如何从 JSON 对象 (AST) 构建控制流图 (CFG)

我想从以 JSON 格式给出的 AST 构建控制流图 (CFG)。所以这个 AST 是在 TouchDevelop 中针对每个脚本自动创建的。而且由于 TouchDevelop 不是面向对象的编程,我还可以使用访问者模式吗?任何有用的指针将不胜感激。

Update1:​​我的问题是我不明白从哪里开始。从互联网上,我应该使用访问者模式遍历 AST 来访问每个节点并收集信息。从那里,我可以构建一个 CFG,然后进行数据流分析。但是有两个问题:

1) AFAIK,我需要面向对象的编程模型来使用访问者模式,(我可能错了)TouchDevelop 不是。

2) 下面给出的 AST 不是我在互联网上找到的 AST 格式。它是 JSON 格式。我想我可以解析 JSON 以将其转换为所需的 AST 结构,但我不太确定。

示例脚本的源代码

生成的 AST(JSON 格式)如下所示:

0 投票
2 回答
134 浏览

c++ - 从节点和关系生成块的算法

我有它们之间的节点和线列表,它看起来像这样:

地图

我需要的是生成块,在这种情况下它会是这样的:block1:1,2,14,11 block2:2,13,12,14 block3:2,3,4,5,6,12,13块 4:6、7、12 等...

有人知道如何为此创建算法吗?谢谢

0 投票
3 回答
5450 浏览

php - 将过程式 PHP 转换为面向对象的 PHP

我目前有一个完全用程序 PHP 编写的相当大的应用程序。我希望进一步提升我的 PHP 经验,并使用面向对象的技术重新编写我的大部分应用程序。

在很多领域,OOP 可以帮助减少代码量并使其更易于阅读。但是,我有几个问题。

1)我的理解是,一个类被用作任意数量对象的蓝图,但是任何一个类只代表一个对象,从不超过一个。所以一个类可以代表一个玩家,但不能代表多个玩家。

2)由于我将包含很多不同的类,我是使用“加载器”类来加载它们,spl_autoload_register还是只spl_autoload_register在我的应用程序的程序文件中使用?

编辑:所以我的自动加载器将是一个类,然后我创建一个实例来启动自动加载,或者只是一个带有函数和 spl_autoload_register 的 php 文件,我将包括以避免在多个文件中重复相同的代码?

3)我的一些课程依赖于其他课程。我以前从未遇到过这种情况,所以老实说,我不知道答案。如果我在我的主程序文件中包含所有类,但我的播放器类不包含它需要运行的类,那么播放器类是否可以工作,因为主程序已经包含了播放器依赖的类?

编辑:所以即使一个类可以实例化一个 Player 类型的对象,并且 Player 类不直接包含在此类中,它仍然可以工作,因为控制器类确实包含 Player 类?

4)在多种情况下,我需要处理我正在创建的对象。我想知道我应该怎么做。例如,在我的 Player 类中,有时我需要从一个 Player 向另一个 Player 发送一些东西。那么,我是在 Player 类中实现一个以两个 Player 作为参数的静态方法并进行传输还是做其他事情?

编辑:好的,所以避免使用静态方法。现在我遇到了一个严重的问题:我的应用程序中有多次运行的方法,但我无法将它们实现为静态方法。我应该将它们实现为实例方法吗?例如,从一个播放器发送到另一个播放器。我会创建一个实例方法,它接受一个 Player 对象并向它发送发送吗?

5)我有很多方法不属于任何一个类的实例,也不适合作为静态方法。这些是否应该在自己的类中声明为 Common 或类似的静态方法?在这种情况下在实践中做了什么?

编辑:这些方法是否属于使用它们的特定应用程序文件,或者可能存储在它们自己的“functions.php”文件中?

6)我想学习如何使用命名空间,但是我的代码永远不会被其他人使用,我也永远不会在我的应用程序中使用其他人的代码。命名空间是我的应用程序中不必要的添加,还是学习如何使用它们是个好主意?无论如何,一个应用程序有一个命名空间(应用程序名称?)还是每个类都属于它自己的命名空间?

7)最后,有一个用于数据库连接的类和一个用于网络方法的类是否很常见?我的应用程序需要两者。我认为将代码转换为使用面向对象技术时遇到的主要问题是确定将哪些方法放在哪里,因为目前它们都在一个整体文件中。

感谢您提供的任何帮助和见解。

0 投票
1 回答
852 浏览

algorithm - 关于解决滑动瓷砖难题的方法

我已经开始阅读 V Anton Spraul 的“像程序员一样思考”。这是问题。

书中提到的火车技术适用于其中的示例。我正在尝试编写火车方法来解决滑动瓷砖问题。

假设我正在研究完整问题的子集,对于下面的一组图块(如书中的示例所示),提到的方法可以正常工作。

我们逆时针移动,直到我们在第一行按顺序获得 4、5、6,然后在空白处滑动 8 以使所有内容按顺序排列。

但是对于以下,我找不到任何合适的方法

是否有可能存在无法解决难题的排列?

谢谢,

/多发性硬化症

0 投票
1 回答
202 浏览

php - PHP:来自 $_REQUEST 的正确函数调用

我一直在阅读一个项目(不基于任何 PHP 框架),并且我在几乎每个响应用户请求($_GET$_POST)的 PHP 文件上都遇到了以下(过程)代码。

我有兴趣知道它作为函数调用机制是否足够安全(甚至更好的是威胁是什么)。这段代码能导致控制流或函数枚举吗?

程序 PHP 中的函数调用是否有适当的方法或建议的机制?

0 投票
5 回答
1257 浏览

php - 如何将函数从 PHP Procedural 转换为 PHP MVC?

我的视图页面上有这个功能,它会截断一些数据以将其呈现在我的表格上。

我为我的动态文本设置了一个局部变量:

在同一页面上,我有这个:

它运行完美,所以我的问题是如何使用 Codeigniter 将其应用于 MVC 架构?如果有人有想法请告诉我,谢谢!!!

0 投票
1 回答
329 浏览

box2d - 纹理随机生成和大小的矩形

我正在制作一个游戏(libgdx & box2d),其中随机生成的行星上有摩天大楼——见下图。

摩天大楼的位置、宽度和高度是随机的。我现在正在寻找纹理这些的最佳方法。

这是一个关于如何最好地解决纹理随机大小对象的一般问题,尽管您可能不需要提供代码。

我有哪些选择?制作小的纹理方块并将它们平铺?拉伸它们?程序生成它们(对于类似摩天大楼的纹理,这是否可能 - 底部的灰色正方形和有/没有光的黑色/黄色窗口)?我需要考虑什么?

我现在真的不知道该怎么做。欢迎任何想法!

谢谢!

乔纳斯

有摩天大楼的星球

设法通过拉伸来完成它 - 现在只对所有尺寸使用一种纹理,但我会改变它。 box2d 对象上的拉伸纹理

0 投票
3 回答
1060 浏览

javascript - 我将所有内容保存在外部 .js 文件中。但并非所有功能都在每个页面上使用。这会影响速度吗?

我的应用程序的 JavaScript/jQuery 包含在一个外部scripts.js文件中。它通常看起来像这样:

giraffe()仅用于可用视图/animal/giraffe
elephant()仅用于可用视图/animal/elephant
zebra()仅用于可用视图/animal/zebra,

但是所有 3 都应该在可用的视图上运行/animal/all。这是一个基本示例,但这就是将它们全部放在一个.js文件中的原因,除了将 HTTP 请求保持在最低限度之外。

我的问题是,这会影响 JavaScript 渲染吗?即使giraffe()没有在 上使用(没有要处理的元素)/animal/zebra,它仍然被调用。如果 js/jQuery 无事可做,它会忽略该函数吗?我确信整个脚本都已阅读,这可能需要时间。那么,处理这个问题的最佳方法是什么?

一种解决方案

为了避免冲突,我在 js 文件的顶部创建了条件,只运行活动页面需要的功能:

这比我想要的要冗长一些,但它成功地保持了这些功能的模块化/无冲突。我欢迎对此解决方案进行改进。