如何在 PHP 中将两个变量加在一起


How to add two variables together in PHP?

我目前正在尝试将两个变量放在一起,一个变量已经具有由imagesy自动计算的特定数字,第二个变量是从url返回数据,$_GET['l2_y']

imagettfstroketext($jpg_image, 0, $y . $options['text']['font-position']['l2_y'] );

$y返回'29'

并且$options['text']['font-position']['l2_y']返回+150(或我在标题中设置的任何内容(

我正在尝试将两者结合起来,但它根本不起作用,如果我删除$y .那么 +150 就可以工作,但如果我添加 . 它不会计算所有内容。

我已经卡在这个上面一段时间了,我不知道如何将两者结合起来,我在 get 中使用 + 符号的原因是因为它也可以用作更改文本位置的-150

您可以尝试使用 intval 将两个数字强制为整数,然后将它们相加(使用 + 而不是 .,用于连接字符串(:

intval($y) + intval($options['text']['font-position']['l2_y'])

这样,在添加它们之前,您可以确定两者都是数字(因此可以避免任何不需要的结果(。

但是,如果您仅使用 +(加法(运算符而不是.串联运算符,则无需将它们强制转换为整数,因为以下内容也有效:

echo '+2' + 3; // outputs 5

PHP 会自动强制数字,如果你想确定它是一个数字(通常是当有人在你的网站上输入一个数字时(,intval很有用。

你来了:

<?php
    $var1 = '1';
    $var2 = '+1';
    $var3 = '-1';
    
    echo $var1 + $var2; //2
    echo $var1 + $var3; //0
?>

您不应该使用 . 运算符,这会像字符串一样连接值。执行此操作的正确方法需要使用 + .

例如:imagettfstroketext($jpg_image, 0, $y + $options['text']['font-position']['l2_y'] );假设$y是数字而不是字符串。

使用您拥有的值,这将返回数字 179,而使用 . 运算符的版本将返回一个包含值的字符串"29150"

如果值不是数字,实际上是字符串,您还可以将每个变量封装在一个intval($var)中,该该将采用变量的整数值(如果存在(。

我认为这就是你所追求的:

imagettfstroketext($jpg_image, 0, intval($y) + intval($options['text']['font-position']['l2_y']));

.用于字符串,+用于数字。如果$y和/或$options['text']['font-position']['l2_y']是字符串(如果它们周围有引号,它们就是字符串(,请将它们转换为带有 intval() 的整数。PHP 会将+150解释为 150,-150解释为 -150