java - 使用脚本语言时如何避免混淆?

标签 java php programming-languages

我以前写过很强类型的语言,比如java。我需要告诉编译器我将放入什么类型的变量...例如...

 public static void sayHello(String aName)

我可以确保用户将字符串传递给我... 但是如果我使用 php,我可以做到...

 function sayHello($aName)

我仍然可以调用 sayHello,但我不知道参数类型是什么......我可以让名称更具信息性,如下所示:

 function sayHelloWithString($aName)

但我无法阻止用户将 int 传递给我......用户仍然可以将 int 传递给我......这可能会导致很多错误......我怎么能停下来?任何想法或经验分享?谢谢。

最佳答案

阻止用户传入 int 怎么样?

在 php 中,您可以检查 is_string,但是当然,您会错过设置了 __toString 的对象,或者数字到字符串的隐式转换。

如果您必须在开发人员尝试不同的东西时让您的程序痛苦地哭泣,您可以在更高版本的 PHP 中指定一个类型(即 function foo(ObjectType $bar)。 ..)*

在大多数松散类型的语言中,您希望为主要类型设置回退:

  • 人数
  • 数组
  • 字符串
  • 通用对象

接受的东西要自由,发送的东西要严格。

* 类型提示不支持原始类型

关于java - 使用脚本语言时如何避免混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6442843/

相关文章:

c++ - 为函数定义符号不明确的指针参数

java - 在方法中实现计时器

java - JSF 2.0 可以与 Websphere 应用程序服务器版本 7.x 一起使用吗

Java - Jersey GET 请求返回 null;等效 URL 在浏览器中产生正确的输出

php - MVC .. 一个 database_model 是否应该包含所有 object_models 的 CRUD?事件记录与注册表模式

php - 具有 PDO 连接的外部文件不起作用

java - 在 Java (Blue J) 中对 ArrayLIst 使用 for 循环?

php - 生成辅助唯一 ID Mongodb

c# - 我应该学习 C# 还是 Java?

programming-languages - 编程语言中的新思想在哪里?