评估PHP和JavaScript中的二进制操作

评估PHP和JavaScript中的二进制操作,javascript,php,evaluation,Javascript,Php,Evaluation,我们有一个web应用程序,它允许用户通过使用小型脚本语言编写代码来定制行为。我们偶然发现的一个问题是,有些操作在PHP和JavaScript中的计算方式不同。例如: -1 < 'A' -1 1”< a \代码>是真的,但是 -1“a”/代码>是错误的吗?这里PHP考虑“代码> -1”/代码>编号JavaScript将“代码> -/代码>视为字母顺序的特殊字符,将其与 -< 1 < A”/代码>中的SrimSO进行比较,JavaScript是否真的将-1转换为字符?

我们有一个web应用程序,它允许用户通过使用小型脚本语言编写代码来定制行为。我们偶然发现的一个问题是,有些操作在PHP和JavaScript中的计算方式不同。例如:

-1 < 'A'
-1<'A'
这段代码在PHP中为true,但在JavaScript中为false

还有其他人曾经面对过这个问题吗?采取什么样的方法才是明智的


编辑:更正,这在PHP中是正确的,但在JavaScript中是错误的

在PHP中,数字和字符串被视为不同,与数字相比,每个字符串都是零


但是Javascript在这里按字母顺序考虑这些值,这样数字就比字母少

一个选项是将前端表达式发送到服务器并在那里进行计算(通常需要注意)。@georg是的,我们已经考虑过了。这个计算结果应该是什么?!是否显式地将值强制转换为数字/字符串帮助?两种语言对类型的评估不同。查看以下内容可能会有所帮助:javascript和php。正如@georg前面提到的,您最好运行服务器端的评估。希望这有帮助,但这并不能解释为什么在JavaScript中代码< > 1”< a \代码>是真的,但是<代码> -1“a”/代码>是错误的吗?这里PHP考虑“代码> -1”/代码>编号JavaScript将“代码> -/代码>视为字母顺序的特殊字符,将其与<代码> -< 1 < A”/代码>中的SrimSO进行比较,JavaScript是否真的将
-1
转换为字符?