本文目錄一覽:
一道PHP題,請問誰能給解釋一下?
?
function pathconvert($cur,$absp)//當前文件,目標路徑
{
$cur=str_replace(‘\\’,’/’,$cur);
$absp=str_replace(‘\\’,’/’,$absp);
$sabsp=explode(‘/’,$absp);
$scur=explode(‘/’,$cur);
$la=count($sabsp)-1;
$lc=count($scur)-1;
$l=max($la,$lb);
for($i=0;$i=$l;$i++){
if($sabsp[$i]!=$scur[$i])
break;
}
$k=$i-1;
$path=””;
for($i=1;$i=($lc-$k-1);$i++)
$path.=”../”;
for($i=$k+1;$i=($la-1);$i++)
$path.=$sabsp[$i].”/”;
$path.=$sabsp[$la];
return$path;
}
$path=pathconvert(“/home/web/test/a.php”,”/home/data/d.png”);
echo $path;
?
面試高級php工程師,一般會問到哪些問題
高並發大訪問量的mysql優化,伺服器優化?
欄位建索引、主從資料庫、讀寫分離、表分區、負載均衡。
linux的慢查詢日誌會記錄mysql的超時查詢sql語句,定期察看進行優化。
2.大訪問量下秒殺模塊程序怎麼設計,如果使用mysql會有多賣的情況,就是訂單超過庫存。
將訂單數據緩存到內存,如果用資料庫直接崩掉,毫無懸念的。
3.緩存的使用
能用靜態的用靜態,不能靜態的用內存緩存,例如memcache、redis,不能緩存的用資料庫。
4.session可不可以跨域?怎麼跨域?
將PHP session機制重寫(PHP提供),將session存儲在memcache或者資料庫就可以跨域了。
另外session能以三種方式存儲,文件、資料庫、緩存。
5.了不了解非關係型資料庫?
mongodb
6.會不會寫shell腳本以及linux的操作
還會問一下時下流行的東西,比如做沒做過微信開發,例如微信支付開發、APP移動開發,等等問題。
問的核心東西都是圍繞這些轉的,如果有筆試會讓你寫sql,php功能(例如冒泡排序等排序),還有邏輯題。
我當初面試了很多,這是一個我的面試經驗的總結,純手打忘採納。
用PHP做畢業設計,求三個題目
CMS 各種管理系統都可以
如果想進百度這種公司 還是好好看看C語言
PHP應聘筆試題
題目一:
?php
echo -10%3;
?
答案:-1。
考查:優先順序。因為-的優先順序比%求余的優先順序低,也就是-(10%3)。
題目二:
print (int)pow(2,32);
答案:0
題目三:
//file1.php
?php
$a = ‘123’;
?
//file2.php
?php
echo include(‘file1.php’);
?
答案:1.
考查:返回值。因include()也是一個函數,有返回值。在成功時返回1,失敗時返回錯誤信息。如果被包含的文件有return,則inculde()成功時返回該文件的`返回值。
題目四:
?php
$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();
?
答案:1.
考查:static和++。因static $count,所以只在第一次調用get_count的時候對$count賦值為0,第二次再進來這個函數,則不會第二次賦值。其次就是return $count++和return ++$count了,前者先返回,後者先++再返回。
題目五:
?php
$arr= array(0 =1,’aa’ =2,3,4);
foreach($arr as $key = $val){
print($key == ‘aa’ ? 5 : $val);
}
?
答案:5534.
考查:類型轉換。因遍曆數組第一次的時候,$key和aa的比較實際就是0和aa的比較,一個是int一個是string,這個時候會轉換類型,將字元串轉換為數字再與數字比較。所以0==’aa’就是0==0,所以為true,也就是輸出5。雖然PHP是若類型語言,但是人家也有類型的好嗎。
題目六:
?php
echo count (false);
$a = count (“567”) + count(null)
+ count(false);
echo $a;
?
答案:2.
考查:count的用法。
因count()的官方解釋「If the parameter
is not an array or not an object
with implemented Countable
interface, 1 will be returned.」.意思是說,如果不是數組或者對象的其他類型,返回1.那麼這個值應該就是1+0+1了(boolen人家也是一個類型,雖然是討厭的false)。NULL的意思是沒有值,難道在計數函數中還能有1?
題目七:
?php
$arr = array(1,2,3);
foreach($arr as $val) {
$val += $val % 2 ? $val++ : $val–;
}
$val = 0;
print(join(”,$arr));
?
答案:330。
考查:++和。
因foreach結束後的數組應該是array(3,3,7);最後給第三個元素賦值為0,所以就是330了。其中注意的是,如果有則是對原變數操作,如果沒有,則是先生成一個新變數,然後給這個變數複製,最後操作的是這個新變數。
題目八:
?php
echo intval((0.1+0.7)*10);
?
答案:7。
考查:浮點數的概念。
因0.1+0.7=0.8 0.8*10=8 所以轉換成整數後還是8?錯!因為0.1+0.7=0.8是浮點數,0.8*10在數學計算中是正整數8,可是在計算機中它仍然是浮點數8,什麼叫浮點數8?每一個看起來像整數的浮點數,其實都不是整數,比如這個8,它其實只是
7.9999循環,無限接近於8,轉換成整數會捨棄小數部分,就是7嘍。
題目九:
?php
ini_set(‘display_errors’,0);
$arr = array(1=1,3=3);
$i = 2;
$a = ‘test’ . isset($arr[$i]) ?
$arr[$i] : $i;
請問$a的值是什麼?
A、test B、NULL C、2 D、test2
?
答案:B。
考查:優先順序 因「.”的優先順序高於三元運算符”?:”。所以程序其實報錯了。會說$arr的索引2不存在。
題目十:
?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . ” ” . $b;
?
A、6 8 B、6 6 C、2 6 D、1 6 E、4 6
答案:D。
考查:優先順序,基礎概念,++。因「=”的優先順序低於「||」,所以先邏輯判斷再賦值。也就是($a = (5 || $b = 7))。所以,最後其實給a賦值了,$a等於1.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240807.html