⑴ php中字元串的兩種表現形式
$a="abcde12";
$b="abcdf6";
echo "<pre>";
var_mp(diffStr($a,$b));
echo "</pre>";
/*
*比較字元串不同的字元
*@參數:$str1:第一個字元串,$str2:第二個字元串
*@<a href="https://www..com/s?wd=%E8%BF%94%E5%9B%9E%E5%80%BC&tn=44039180_cpr&fenlei=-z4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">返回值</a>:不同字元串的數組,
*/
function diffStr($str1,$str2){
$sArr1 = str_split($str1);
$sArr2 = str_split($str2);
$num1 = count($sArr1);
$num2 = count($sArr2);
$aNew = array();
if($num1 > $num2){
foreach($sArr1 as $k=>$val){
if($num2 > $k && www.hbbz08.com $val != $sArr2[$k]){
$aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
}elseif($num2 <= $k){
$aNew[] = array("s1"=>$val);
}
}
}elseif($num1 < $num2){
foreach($sArr2 as $k=>$val){
if($num1 > $k && $val != $sArr1[$k]){
$aNew[] = array('s1'=>$sArr1[$k],'s2'=>$val);
}elseif($num1 <= $k){
$aNew[] = array("s2"=>$val);
}
}
}elseif($num1 == $num2){
foreach($sArr1 as $k=>$val){
if($val != $sArr2[$k]){
$aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
}
}
}
return $aNew;
}
⑵ PHP中有幾種主要的數據類型,通俗的解釋一下他們
數據類型有三種:
1.標量數據類型
標量數據類型包括以下幾種。
(1)boolean:布爾型
布爾變數是PHP變數中最簡單的。它保存一個True或者False值。其中True或者False是PHP的內部關鍵字。設定一個布爾型的變數,只需將True或者False賦值給該變數
(2)string:字元串
字元串是連續的字元序列,字元串中的每個字元只佔用一個位元組。在PHP中,定義字元串有3種方式:
單引號方式,
雙引號方式,
Heredoc方式。
(3)integer:整數
整數數據類型只能包含整數。這些數據類型可以是正數或負數。在32位的操作系統中,有效的范圍是−2 147 483 648~+2 147 483 647。
(4)double:浮點數
浮點數據類型可以用來存儲數字,也可以保存小數。它提供的精度不整數大得多。在32位的操作系統中,有效的范圍是1.7E-308~1.7E+308。
2.復合數據類型
復合數據類型包括以下兩種。
(1)array:數組
可以是二維、三維或者多維,數組中的各元素可以是string、integer或double,也可以是array。
(2)object:對象類型
3.特殊數據類型
特殊數據類型包括以下兩種。
(1)resource:資源
資源是PHP內的幾個函數所需要的特殊數據類型,由編程人員來分配。
(2)null:空值
空值是最簡單的數據類型。表示沒有為該變數設置任何值,另外,空值(NULL)不區分大小寫。
⑶ php的關於字元串類型的變數的賦值問題,謝謝
1.如果確實如標題所說,這是個關於php語言變數的問題,那麼,貌似這兩句代碼的語法都不太正確:從語法來看,這兩句代碼,貌似應該是javascript的代碼。
php的變數定義,一般變數名前加 $ 符號,一般前面也沒有var關鍵字:
var string=「abc」; =》 $string = "abc";
var string=new String("abc");
這個因為在php里沒有 string 對象,所以並不能進行類似的寫法。
2. 如果你寫兩句代碼,是javascript的代碼,那麼,兩者的區別在於:
var string=「abc」; 這里的string是個字元串變數。
var string=new String("abc"); 這里的string是個對象的實例。
⑷ 在php中,怎樣把數字轉化為字元串
1、首先新建一個PHP文檔,並定義一個數組,示例:$arr = array("I","have","an","apple");
⑸ PHP MYSql 數值類型(int)與字串類型(char)區別!~
兩個就是存的數據的大小不同,int 1位代表兩位元組,char 1位代表一位元組
還有的就是int 存的是我們的數字123,char 存的是我們的中文,英文,
⑹ 在PHP中如何強制轉化成字元串
echo is_string($變數名);
echo json_encode($bar);
實踐所得,不是類型強轉!!!只是將object以string形式或者json形式輸出。
⑺ 字元串的16、PHP中介紹
string是一系列字元。在 php 中,字元和位元組一樣,也就是說,一共有 256 種不同字元的可能性。這也暗示 php 對 Unicode 沒有本地支持。請參閱函數utf8_encode()和utf8_decode()以了解有關 Unicode 支持
注:一個字元串變得非常巨大也沒有問題,php 沒有給字元串的大小強加實現范圍,所以完全沒有理由擔心長字元串。
語法
字元串可以用三種字面上的方法定義。
單引號
雙引號
定界符 指定一個簡單字元串的最簡單的方法是用單引號(字元 ')括起來。
要表示一個單引號,需要用反斜線(/)轉義,和很多其它語言一樣。如果在單引號之前或字元串結尾需要出現一個反斜線,需要用兩個反斜線表示。注意如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!所以通常不需要轉義反斜線本身。
注:在 php 3 中,此情況下將發出一個 E_NOTICE 級的警告。
注:和其他兩種語法不同,單引號字元串中出現的變數和轉義序列不會被變數的值替代。
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// Outputs: Arnold once said: I'll be backecho 'Arnold once said: I/'ll be back';// Outputs: You deleted C:/*.*?echo 'You deleted C://*.*?';// Outputs: You deleted C:/*.*?echo 'You deleted C:/*.*?';// Outputs: This will not expand: /n a newlineecho 'This will not expand: /n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?>
此外,如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!
雙引號字元串最重要的一點是其中的變數名會被變數值替代。細節參見字元串解析。 另一種給字元串定界的方法使用定界符語法(「<<<」)。應該在 <<< 之後提供一個標識符,然後是字元串,然後是同樣的標識符結束字元串。
結束標識符必須從行的第一列開始。同樣,標識符也必須遵循 php 中其它任何標簽的命名規則:只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。
例子 11-3. 非法的例子
<?phpclass foo { public $bar = <<<EOTbarEOT;}?>
定界符文本表現的就和雙引號字元串一樣,只是沒有雙引號。這意味著在定界符文本中不需要轉義引號,不過仍然可以用以上列出來的轉義代碼。變數會被展開,但當在定界符文本中表達復雜變數時和字元串一樣同樣也要注意。
例子 11-4. 定界符字元串例子
<?php$str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo <<<EOTMy name is $name. I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': /x41EOT;?>注:定界符支持是 php 4 中加入的。 當用雙引號或者定界符指定字元串時,其中的變數會被解析。
有兩種語法,一種簡單的和一種復雜的。簡單語法最通用和方便,它提供了解析變數,數組值,或者對象屬性的方法。
復雜語法是 php 4 引進的,可以用花括弧括起一個表達式。
簡單語法如果遇到美元符號($),解析器會盡可能多地取得後面的字元以組成一個合法的變數名。如果想明示指定名字的結束,用花括弧把變數名括起來。
<?php$beer = 'Heineken';echo $beer's taste is great; // works, ' is an invalid character for varnamesecho He drank some $beers; // won't work, 's' is a valid character for varnamesecho He drank some ${beer}s; // worksecho He drank some {$beer}s; // works?>
同樣也可以解析數組索引或者對象屬性。對於數組索引,右方括弧(])標志著索引的結束。對象屬性則和簡單變數適用同樣的規則,盡管對於對象屬性沒有像變數那樣的小技巧。
<?php// These examples are specific to using arrays inside of strings.// When outside of a string, always quote your array string keys// and do not use {braces} when outside of strings either.// Let's show all errorserror_reporting(E_ALL);$fruits = array('strawberry' => 'red', 'banana' => 'yellow');// Works but note that this works differently outside string-quotesecho A banana is $fruits[banana].;// Worksecho A banana is {$fruits['banana']}.;// Works but php looks for a constant named banana first// as described below.echo A banana is {$fruits[banana]}.;// Won't work, use braces. This results in a parse error.echo A banana is $fruits['banana'].;// Worksecho A banana is . $fruits['banana'] . .;// Worksecho This square is $square->width meters broad.;// Won't work. For a solution, see the complex syntax.echo This square is $square->width00 centimeters broad.;?>
對於任何更復雜的情況,應該使用復雜語法。
復雜(花括弧)語法不是因為語法復雜而稱其為復雜,而是因為用此方法可以包含復雜的表達式。
事實上,用此語法可以在字元串中包含任何在名字空間的值。僅僅用和在字元串之外同樣的方法寫一個表達式,然後用 { 和 } 把它包含進來。因為不能轉義「{」,此語法僅在 $ 緊跟在 { 後面時被識別(用「{/$」或者「/{$」來得到一個字面上的「{$」)。用一些例子可以更清晰:
<?php// Let's show all errorserror_reporting(E_ALL);$great = 'fantastic';// 不行,輸出為:This is { fantastic}echo This is { $great};// 可以,輸出為:This is fantasticecho This is {$great};echo This is ${great};// Worksecho This square is {$square->width}00 centimeters broad.;// Worksecho This works: {$arr[4][3]};// This is wrong for the same reason as $foo[bar] is wrong// outside a string. In otherwords, it will still work but// because php first looks for a constant named foo, it will// throw an error of level E_NOTICE (undefined constant).echo This is wrong: {$arr[foo][3]};// Works. When using multi-dimensional arrays, always use// braces around arrays when inside of stringsecho This works: {$arr['foo'][3]};// Works.echo This works: . $arr['foo'][3];echo You can even write {$obj->values[3]->name};echo This is the value of the var named $name: {${$name}};?>
訪問和修改字元串中的字元
字元串中的字元可以通過在字元串之後用花括弧指定所要字元從零開始的偏移量來訪問和修改。
注:為了向下兼容,仍然可以用方括弧。不過此語法自 php 4 起已過時。
例子 11-5. 一些字元串例子
<?php// Get the first character of a string$str = 'This is a test.';$first = $str{0};// Get the third character of a string$third = $str{2};// Get the last character of a string.$str = 'This is still a test.';$last = $str{strlen($str)-1};// Modify the last character of a string$str = 'Look at the sea';$str{strlen($str)-1} = 'e';?> 字元串可以用「.」(點)運算符連接。注意這里不能用「+」(加)運算符。更多信息參見字元串運算符。
有很多實用函數來改變字元串。
普通函數見字元串函數一節,高級搜索和替換見正則表達式函數(兩種風格:Perl 和 POSIX 擴展)。
還有 URL 字元串函數,以及加密/解密字元串的函數(mcrypt 和 mhash)。
最後,如果還是找不到想要的函數,參見字元類型函數。 可以用 (string) 標記或者strval()函數將一個值轉換為字元串。當某表達式需要字元串時,字元串的轉換會在表達式范圍內自動完成。例如當使用echo()或者print()函數時,或者將一個變數值與一個字元串進行比較的時候。閱讀手冊中有關類型和類型戲法中的部分有助於更清楚一些。參見settype()。
布爾值TRUE將被轉換為字元串 1,而值FALSE將被表示為 (即空字元串)。這樣就可以隨意地在布爾值和字元串之間進行比較。
整數或浮點數數值在轉換成字元串時,字元串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。
數組將被轉換成字元串 Array,因此無法通過echo()或者print()函數來輸出數組的內容。請參考下文以獲取更多提示。
對象將被轉換成字元串 Object。如果因為調試需要,需要將對象的成員變數列印出來,請閱讀下文。如果希望得到該對象所依附的類的名稱,請使用函數get_class()。自 php 5 起,如果合適可以用 __toString() 方法。
資源類型總是以 Resource id #1 的格式被轉換成字元串,其中 1 是 php 在運行時給資源指定的唯一標識。如果希望獲取資源的類型,請使用函數get_resource_type()。
NULL將被轉換成空字元串。
正如以上所示,將數組、對象或者資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數print_r()和var_mp(),對於調試來說,這些是更好的列印值的方法。
可以將 php 的值轉換為字元串以永久地儲存它們。這種方法被稱為序列化,可以用函數serialize()來完成該操作。如果在安裝 php 時建立了 WDDX 支持,還可以將 php 的值序列化為 XML 結構。 當一個字元串被當作數字來求值時,根據以下規則來決定結果的類型和值。
如果包括「.」,「e」或「E」其中任何一個字元的話,字元串被當作float來求值。否則就被當作整數。
該值由字元串最前面的部分決定。如果字元串以合法的數字數據開始,就用該數字作為其值,否則其值為 0(零)。合法數字數據由可選的正負號開始,後面跟著一個或多個數字(可選地包括十進制分數),後面跟著可選的指數。指數是一個「e」或者「E」後面跟著一個或多個數字。
<?php$foo = 1 + 10.5; // $foo is float (11.5)$foo = 1 + -1.3e3; // $foo is float (-1299)$foo = 1 + bob-1.3e3; // $foo is integer (1)$foo = 1 + bob3; // $foo is integer (1)$foo = 1 + 10 Small Pigs; // $foo is integer (11)$foo = 4 + 10.2 Little Piggies; // $foo is float (14.2)$foo = 10.0 pigs + 1; // $foo is float (11)$foo = 10.0 pigs + 1.0; // $foo is float (11)?>
此轉換的更多信息見 Unix 手冊中關於 strtod(3) 的部分。
如果想測試本節中的任何例子,可以拷貝和粘貼這些例子並且加上下面這一行自己看看會發生什麼:
<?phpecho /$foo==$foo; type is . gettype ($foo) . <br />/n;?>
不要指望在將一個字元轉換成整型時能夠得到該字元的編碼(可能也會在 C 中這么做)。如果希望在字元編碼和字元之間轉換,請使用ord()和chr()函數。
⑻ PHP表示字元串的單引號和雙引號有什麼區別
在PHP這類型語言中,沒有字元類型,只有字元串類型。單引號代表按原樣輸出。
比如'hello\r\n',輸出的就是hello\r\n。但如果是雙引號,則會對其中的轉義字元進行轉換。比如還是剛才的字元串,由於\r\n是換行標記,所以雙引號內的"hello\r\n"就會輸出hello後再換行。
⑼ php中什麼是字元串用引號引起來的就叫字元串嗎
一個字元串string就是由一系列的字元組成,其中每個字元等同於一個位元組。
php字元串:
定義一個字元串的最簡單的方法是用單引號把它包圍起來(字元')。
要表達一個單引號自身,需在它的前面加個反斜線()來轉義。要表達一個反斜線自身,則用兩個反斜線(\)。其它任何方式的反斜線都會被當成反斜線本身:也就是說如果想使用其它轉義序列例如 或者 ,並不代表任何特殊含義,就單純是這兩個字元本身。
這里有詳細的解釋http://php.net/manual/zh/language.types.string.php
⑽ thinkphp怎麼轉換成字元串類型
使用php的自帶函數bool settype( mixed &$var, string $type)
參數
var 要轉換的變數。
type
type 的可能值為:
「boolean」 (或為「bool」,從 PHP 4.2.0 起)
「integer」 (或為「int」,從 PHP 4.2.0 起)
「float」 (只在 PHP 4.2.0 之後可以使用,對於舊版本中使用的「double」現已停用)
"string"
"array"
"object"
「null」 (從 PHP 4.2.0 起)
例子:
<?php
$foo="5bar";//string
$bar=true;//boolean
settype($foo,"integer");//$foo現在是5(integer)
settype($bar,"string");//$bar現在是"1"(string)
?>