PDA

View Full Version : سوال: <<<HT



solmazzzz
چهارشنبه 31 مرداد 1397, 12:59 عصر
با سلام
ممکنه این کد رو توضیح بدید؟

if($banner){
$body= $body.<<<HT
<div class="banner">
<img src="{$banner['img']}" />
</div>
HT;
}
}




<<<HT یعنی چی؟

solmazzzz
چهارشنبه 31 مرداد 1397, 13:00 عصر
کد ضمیمه شد

charcharkh
چهارشنبه 31 مرداد 1397, 13:24 عصر
سلام اینو بخون

https://stackoverflow.com/questions/5673269/what-is-the-advantage-of-using-heredoc-in-php

charcharkh
چهارشنبه 31 مرداد 1397, 13:26 عصر
اینم دوست داشتی بخون

http://www.tuts.irdevs.com/php-echo.html

marasiali
چهارشنبه 31 مرداد 1397, 13:30 عصر
این ساختار string های چند خطیه بدین صورت که با


<<<TEST

شروع میشه و با


TEST;

تموم و جای TEST هر کلمه دلخواهی میتونه باشه ولی دوکلمه باید یکسان باشن.(شک دارم که حتما باید باحروف بزرگ باشن یا نه)

solmazzzz
چهارشنبه 31 مرداد 1397, 21:54 عصر
خیلی ممنونم
ممکنه در مورد این کدی که ضمیمه کردم هم توضیح بدید که return چیکار میکنه

hamedarian2009
پنج شنبه 01 شهریور 1397, 09:17 صبح
خیلی ممنونم
ممکنه در مورد این کدی که ضمیمه کردم هم توضیح بدید که return چیکار میکنه
سلام داره یک آرایه تودرتو را به عنوان خروجی ریترن میکنه. یک آرایه که مقادیر داخلش خودشون آرایه هستن

solmazzzz
پنج شنبه 01 شهریور 1397, 09:38 صبح
ببخشید ممکنه بیشتر توضیح بدید؟
خروجی چی میده؟
چرا 'img' و 'text' همش تکرار شده؟ نباید اسمهای متفاوت در نظر بگیریم؟
اگر بخواهیم از ارایه تو در تو حتما باید return بنوسیم؟
نمیشه array بنویسیم؟

solmazzzz
پنج شنبه 01 شهریور 1397, 11:40 صبح
میشه یکی به من جواب بده؟؟
:گریه::گریه:
:ناراحت::ناراحت:

marasiali
پنج شنبه 01 شهریور 1397, 11:56 صبح
آرایه تو در تو یه متغیره و با آرایه عادی هیچ فرقی نداره جز اینکه اعضاش هرکدوم یه آرایه ان. اون img هم تکرار نشده هر img مال آرایه درونیه و تداخلی با هم ندارن. دقت کنین img هیچ ربطی به آرایه اصلی نداره. بلکه آرایه اصلی دو تا عضو آرایه داره که هرکدوم آرایه ها یه عضو با اسم img و محتوای آدرس عکس دارن.
همونطور که گفتم آرایه تودرتو از منظر سیستم یه آرایه ساده تلقی میشه پس ضرورتی برای return کردن اون نداره و میتونیم به عنوان یه متغیر قرارش بدیم ولی اینجا نیاز بوده تابع این مقدار رو برگشت بده.
توضیحات تکمیلی:
https://www.w3schools.com/php/php_arrays_multi.asp

solmazzzz
پنج شنبه 01 شهریور 1397, 13:16 عصر
پس چرا در خروجی هیچی نشون نمیده و صفحه سفید هست...چطور باید خروجی گرفت
ایا در ارایه میشه عکس خروجی گرفت ؟
توی مسیر داده شده عکس دارم ولی واقعا متوجه نمیشم برای چی هیچ خروجی ندارما

marasiali
پنج شنبه 01 شهریور 1397, 15:18 عصر
چون کدی که گذاشتید کامل نیست و return درون تابع کاربرد داره درحالیکه اینجا تابعی وجود نداره. برای چاپ اون هم میتونین آرایه رو تو یه متغیر بریزین و با var_dump چاپش کنین.
در آرایه هم خود عکس رو نگه داری نمیکنند فقط آدرسش رو نگه داری میکنند(مثل همینجا) و درصورت نیاز ازش برای استفاده از عکس استفاده میکنن.مثلا اینجوری




<?php

$imgArray = [
[
'img'=>"pic/banner/banner1.jpg",
],
[
'img'=>"pic/banner/banner2.jpg",
],
];

for($i = 0; $i < count($imgArray); $i++){
echo '<img src="' . $imgArray[$i]['img'] . '" >' ;

}



البته عکس ها باید تو مسیر موجود باشن تا تگ img رو echo کنین و آدرس ها رو به عنوان src بهشون بدیم.
اول باید به آرایه های معمولی مسلط باشین تا موقع کار با آرایه های چندبعدی(تو در تو) گیج نشین.

solmazzzz
جمعه 02 شهریور 1397, 09:35 صبح
من کدی که نوشتید رو اجرا میکنم ارور میده...عکس هم در مسیر مربوطه وجود داره...
در خط اخر که echo کردید چرا img رو در کروشه قرار دادید... مگه نباید اندیس در [][] فرار بگیره....
i عدد هست ولی img نمیدونم چرا اینجا قرار داده شده

marasiali
جمعه 02 شهریور 1397, 09:55 صبح
چه اروری میده؟ اینجوری که نمیشه گفت.
دررابطه با اندیس img هم بگم ما با اندیس اول که i هست به عضو i ام آرایه مون دسترسی داریم ولی این عضو هم یک آرایه است پس باید به مقدار عضو با کلید img که آدرس رو نگهداری میکنه دسترسی داشته باشیم.اگر مدل آرایه داخلی براتون آشنا نیست باید مبحث آرایه های انجمنی یا همون Associative Arrays رو مطالعه کنید.
https://www.w3schools.com/php/php_arrays.asp

solmazzzz
جمعه 02 شهریور 1397, 11:28 صبح
ارور اینه:Notice: Use of undefined constant i - assumed 'i' in C:\xampp\htdocs\code\index2.php on line 13

Notice: Undefined index: i in C:\xampp\htdocs\code\index2.php on line 13

Notice: Use of undefined constant i - assumed 'i' in C:\xampp\htdocs\code\index2.php on line 13

Notice: Undefined index: i in C:\xampp\htdocs\code\index2.php on line 13

marasiali
جمعه 02 شهریور 1397, 13:05 عصر
بله اشتباه از من بود شرمنده اندیس i که میخوام بدم فراموش کردم قبلش $ بذارم.اصلاحش کردم.