演算子


文字列演算子

文字列比較
gt$str1 gt $str2$str1は$str2より大きい
ge$str1 ge $str2$str1は$str2と同じか大きい
lt$str1 lt $str2$str1は$str2より小さい
le$str1 le $str2$str1は$str2と同じか小さい

eq$str1 eq $str2$str1と$str2は等しい
ne$str1 ne $str2$str1と$str2は等しくない
cmp$str1 cmp $str2$str1と$str2を比較して、-1, 0, 1のいずれかを戻す
--
例:
$str1 = "c";
$str2 = "c";
$str3 = "a";
$str4 = "e";

print $str1 cmp $str2, "\n"; #"c"と"c"の比較
print $str1 cmp $str3, "\n"; #"c"と"a"の比較
print $str1 cmp $str4, "\n"; #"c"と"e"の比較

出力
0 #"c"と"c"の比較 - 2つの文字列は等しい
1 #"c"と"a"の比較 - 最初の文字列の方が大きい
-1 #"c"と"e"の比較 - 最初の文字列の方が小さい
--

文字列結合
.$str1.$str2文字列$str1と$str2を結合する
x$str1x$num$str1を$num回分だけ結合する

文字列処理関数
substrsubstr($str1, $offset, $len)$str1の$offset位置から$lenバイト分の文字列を抜き出す
indexindex($str1, $str2)文字列$str1の中で文字列$str2が見つかった位置を返す
lengthlength($str1)$str1の中の文字数を返す
--
例:
$str1 = "apple";
$str2 = substr($str1, 0, 3);
print $str2,"\n";
出力:app
--

数値演算子

算術演算子
+足し算$a=$b+$c
-引き算
*かけ算
/わり算
%わり算の余り
**べき乗
++インクリメント$i++
--デクリメント$i--

算術関連の関数
intint($num)数値$numの小数点以下を切り捨て、整数にする

代入演算子
=$var = 3$varという変数に「3」を代入
+=$var += 3$var = $var + 3に同じ
-=$var -= 3$var = $var - 3に同じ
他に、*=、/=、%=、**=など

関係演算子
>$x > $y$xは$yより大きい
>=$x >= $y$xは$yと同じか大きい *$x => $yはエラー
<$x < $y$xは$yより小さい
<=$x <= $y$xは$yと同じか小さい *$x =< $yはエラー

等値演算子
==$x == $y$xと$yは等しい
!=$x != $y$xと$yは等しくない
<=>$x <=> $y$xと$yを比較し、-1、0、1のいずれかを返す

論理演算子
&&$x && $y$xと$yとのAND
||$x || $y$xと$yとのOR
!!$xNOT

付録 - ランダム関数
srandsrand 式rand関数のための乱数の「種(シード)」を設定。式が省略されるとtime関数が使用される。
randrand 式0から式(正の値)までの乱数を返す。式が省略されると0から1までの乱数を返す。

以下の例では、0から100までの乱数を10個返します。

srand;
for($i=0; $i<10; $i++) {
  print int(rand(100)),"\n";
}