0
所以在PHP $a = 1234;
和$a = (1234);
都是有效的整數,1234PHP將字符串轉換(1234)爲整數
我有一些第三方的代碼的情況下我有$a = "(1234)";
(即一個字符串)
正常的字符串轉換成int不工作(因爲括號)
<?php
$b = (int) $a; // 0
$b = intval($a); // 0
我可以做類似
preg_match('/^\(([\d]+)\)$/', $a, $m);
$b = $m[1];
想知道是否有一些巧妙的方法將$ a轉換回我已經錯過的整數?
(1234)在會計中意味着-1234,所以不要太快刪除那些括號。 – Augwa
@Augwa會計很奇怪。爲什麼在使用1時使用2個額外的字符? (所有其他領域也會明白這一點) – apokryfos
要做的愚蠢的事情是'eval(「\ $ b = $ a」);'然後檢查'$ b'。我只說這是因爲'$ a =(1234)'實際上並不是PHP中的有效整數,它是一個有效的*表達式*,其值爲整數。通過表達式我的意思是首先評估括號的內容,並將結果存儲在'$ a'中。 – apokryfos